在java中,抽象方法可以是公共的吗?

Dav*_*vid 9 java

在java中,抽象方法可以是公共的吗?抽象方法是隐式公开的还是如果你没有指定它们是否打包?(常规方法隐式包装正确?)是否有抽象方法不能拥有的可见性修饰符?(私人打扰我有问题)

SLa*_*aks 15

abstract方法与普通方法具有相同的可见性规则,但它们不能private.


use*_*own 7

你为什么不试试呢?

abstract class A { 
  private   abstract void pri ();
  protected abstract void pro ();
        abstract void pa ();
  public    abstract void pu ();
}

javac A.java 
A.java:2: illegal combination of modifiers: abstract and private
  private   abstract void pri ();
                          ^
1 error
Run Code Online (Sandbox Code Playgroud)

a)是的,私有抽象方法是无用的,并且使整个类无用.

abstract class B { 
//  private abstract void pri ();
  protected abstract void pro ();
        abstract void pa ();
  public    abstract void pu ();
}

public class A extends B {
  protected void pro () {} ;
            void pa () {} ;
  public    void pu () {} ;
}
Run Code Online (Sandbox Code Playgroud)

其他访问修改关键字都被接受.