我们可以在 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