我瞭解目前壓倒一切的,我讀了一個私有方法不能被重寫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