class Base {
private void SayHello(){ //PRIVATE
System.out.println("Hello from Base");
}
}
class Derived extends Base {
public void sayHello(){ //PUBLIC
System.out.println("Hello from Derived");
}
}
public class TestHello{
public static void main(String[] args) {
Derived d = new Derived();
Base b = d;
d.sayHello(); //works as expected
b.sayHello(); //Why does this not work?
}
}
我想明白:是私人sayHello從基類可見到派生類?還是重新定義?爲什麼從基指針調用派生sayHello不起作用?我的意思是,如果它是公開的(在Base中),那麼來自派生類的sayHello就會被調用。所以,我不明白的是,如果它必須從派生類調用公共sayHello,那麼爲什麼要從基類中查看訪問修飾符?另外,如果你能指點我一些簡潔的資源,這將有助於我更深入地理解這一點,我真的很感激這一點。謝謝!動態綁定如何在Java中的基類中爲私有方法工作?
當您在覆蓋父項目實施的子類中提供實例方法時,將調用此方法,而不是父項。 –