📜  Java中的抽象与公共访问修饰符(1)

📅  最后修改于: 2023-12-03 15:16:32.762000             🧑  作者: Mango

Java中的抽象与公共访问修饰符

Java是一种面向对象的编程语言,它提供了丰富的抽象和访问修饰符来帮助程序员更好地组织和管理代码。本文将介绍Java中的抽象和公共访问修饰符,并提供相关示例。

抽象

抽象是一种对现实世界中的事物进行概括、提取出共性而得到的概念。在Java中,我们也可以通过抽象来提取出一些共性,从而方便代码的管理和重用。

抽象类

抽象类是一种不能被实例化的类,它的主要作用是为其它类提供一个公共的抽象类或者抽象接口。抽象类中可以包含一些具体的方法实现,也可以包含一些抽象方法,其具体实现由其子类去完成。

定义一个抽象类使用关键字 abstract,示例代码如下:

public abstract class AbstractClass {
    // 具体方法实现
    public void concreteMethod() {
        System.out.println("This is a concrete method.");
    }
    // 抽象方法
    public abstract void abstractMethod();
}

上面的代码中,我们定义了一个抽象类 AbstractClass,其中包含了一个具体的方法 concreteMethod 和一个抽象方法 abstractMethod。注意,在抽象类中可以包含具体方法的实现,但抽象方法必须在其子类中实现。

抽象方法

抽象方法是一种没有实现体的方法,其具体实现由其子类去完成。在Java中,我们可以通过在方法签名前加上 abstract 关键字来定义一个抽象方法。

示例代码如下:

public abstract void abstractMethod();

上面的代码中,我们定义了一个抽象方法 abstractMethod,其具体实现由其子类去完成。

抽象类与抽象方法的应用

抽象类和抽象方法主要用于以下场景:

  • 为其它类提供一个公共的抽象类或者抽象接口。
  • 帮助程序员更好地组织和管理代码。
  • 方便代码的重用。
公共访问修饰符

Java中提供了四种访问修饰符,分别是 publicprivateprotecteddefault,其中,public 是最常用的访问修饰符之一。

public

使用 public 来修饰类、方法、字段等,表示它们可以被任何其他类访问。示例代码如下:

public class MyClass {
    public void publicMethod() {
        // 具体方法实现
    }
    public String publicField = "This is a public field.";
}

在上面的代码中,我们使用 public 来修饰了类 MyClass、方法 publicMethod 和字段 publicField,表示它们可以被任何其他类访问。

private

使用 private 来修饰方法、字段等,表示它们只能被该类内部的其他方法所访问。示例代码如下:

public class MyClass {
    private void privateMethod() {
        // 具体方法实现
    }
    private String privateField = "This is a private field.";
}

在上面的代码中,我们使用 private 来修饰了方法 privateMethod 和字段 privateField,表示它们只能被类内部的其他方法所访问。

protected

使用 protected 来修饰方法、字段等,表示它们可以被该类内部的其他方法和该类的子类访问。示例代码如下:

public class MyClass {
    protected void protectedMethod() {
        // 具体方法实现
    }
    protected String protectedField = "This is a protected field.";
}

在上面的代码中,我们使用 protected 来修饰了方法 protectedMethod 和字段 protectedField,表示它们只能被该类内部的其他方法和该类的子类访问。

default

当没有使用以上三种修饰符时,系统默认使用 default 来修饰方法、字段等,表示它们只能被该类所在的包内的其他类访问。示例代码如下:

public class MyClass {
    void defaultMethod() {
        // 具体方法实现
    }
    String defaultField = "This is a default field.";
}

在上面的代码中,我们没有使用任何访问修饰符来修饰方法 defaultMethod 和字段 defaultField,系统将其默认为 default,表示它们只能被该类所在的包内的其他类所访问。

总结

本文介绍了Java中的抽象和公共访问修饰符,包括抽象类、抽象方法以及访问修饰符 publicprivateprotecteddefault。抽象和访问修饰符是Java中面向对象编程的重要特性,程序员应当熟练掌握。