我了解目前压倒一切的,我读了一个私有方法不能被重写here的Java重写私人与公开
我也读到的访问级别不能比超的访问级别更严格here
所以我想知道的是,这是否意味着你只能覆盖公共方法?你是新的方法还必须公开?
方案
class A {
private void method1(){
....
}
}
class B extends A {
private void method1(){
....
}
}
上午我在说这将是一个编译时错误,因为私有方法不能被重写正确?
Scenario2
class A {
public void method1(){
....
}
}
class B extends A {
private void method1(){
....
}
}
我是正确的话,这也将产生一个编译时错误,因为你的method1()
在B
的访问级别为A
场景3
class A {
public void method1(){
....
}
}
class B extends A {
public void method1(){
....
}
}
比
method1()
更严格
最后一个问题,这是唯一的情景方法可以重写恩? (两种访问级别都是公开的)
受保护太...而那些将具有相同的知名度 –
为什么不在发布前测试它们? – shmosel