在抽象类中,我必须将哪个访问修饰符用于方法,以便子类可以决定它是否应该是公共的?是否可以在 Java 中“覆盖”修饰符?
public abstract class A {
??? void method();
}
public class B extends A {
@Override
public void method(){
// TODO
}
}
public class C extends B {
@Override
private void method(){
// TODO
}
}
我知道静态绑定会有问题,如果有人调用:
// Will work
A foo = new B()
foo.method();
// Compiler ?
A foo = new C();
foo.method();
但也许还有另一种方式。我怎样才能做到这一点?