在Java中,我们可以声明抽象方法为私有、受保护、公有或默认吗?
没有方法体的方法称为抽象方法。它只包含方法签名和一个分号,以及在其前面一个抽象关键字。
public abstract myMethod();
要使用抽象方法,您需要通过扩展其类来继承它,并为其提供实现。
声明私有抽象方法
如果一个类的某个方法是私有的,则您无法在当前类之外访问它,甚至无法从它的子类访问它。
但是,对于抽象方法,您无法在同一个类中使用它,您需要从子类中覆盖它并使用它。
因此,抽象方法不能是私有的。
如果您仍然尝试将抽象方法声明为final,则会生成一个编译时错误,提示“修饰符的非法组合 - abstract 和 private”。
示例
在以下 Java 程序中,我们尝试声明一个私有抽象方法。
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
声明受保护的抽象方法
是的,您可以声明受保护的抽象方法。如果您这样做,则可以从同一包中的类或其子类中访问它。
(并且您必须从子类中覆盖抽象方法并调用它。)
示例
在以下 Java 程序中,我们尝试声明一个受保护的抽象方法。
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
广告