我们可以在 Java 中声明抽象方法、私有方法、受保护方法、公共方法或默认方法吗?

java 8object oriented programmingprogramming

没有主体的方法称为抽象方法。它仅包含带有分号的方法签名,前面有一个 abstract 关键字。

public abstract myMethod();

要使用抽象方法,您需要通过扩展其类来继承它并为其提供实现。

将抽象方法声明为私有

如果类的方法是私有的,则您无法在当前类之外访问它,甚至不能从其子类访问它。

但是,对于抽象方法,您不能从同一个类中使用它,您需要从子类中覆盖它并使用。

因此,抽象方法不能是私有的。

如果您仍尝试将抽象方法声明为 final,则会生成编译时错误,提示"修饰符组合非法" abstract and private"。

示例

在下面的 Java 程序中,我们试图将抽象方法声明为 private。

abstract class AbstractClassExample {
   private static abstract void display();
}

编译时错误

在编译时,上述程序生成以下错误。

AbstractClassExample.java:2: error: illegal combination of modifiers: abstract and private
   private static abstract void display();
                              ^
1 error

将抽象方法声明为 protected

是的,您可以将抽象方法声明为 protected。如果这样做,您可以从同一包中的类或其子类访问它。

(您必须从子类中覆盖抽象方法并调用它。)

示例

在下面的 Java 程序中,我们尝试将抽象方法声明为 protected。

abstract class MyClass {
   protected abstract void display();
}
public class AbstractClassExample extends MyClass{
   public void display() {
      System.out.println("This is the subclass implementation of the display method ");
   }
   public static void main(String args[]) {
      new AbstractClassExample().display();
   }
}

输出

This is the subclass implementation of the display method

相关文章