1. 程式人生 > >父類與子類的方法呼叫關係

父類與子類的方法呼叫關係

之前一直很模糊,看了《thinking in java》之後終於明白了
假如現在有兩個類A,B,B是A的派生類。
在A中有這樣的方法:

public void say(int i){
.....
}

public void say(String str){
.....
}

在B類中有這樣的方法:

public void say(double d){
.....
}

@Override
public void say(String str){
.....
}

現在我們的程式碼是這樣的:
A a=new B();
a.say(“hello”);//呼叫的是B類的say方法
a.say(2.0);//error,無法通過編譯
a.say(1);//呼叫的是A類的say方法

方法被覆蓋,呼叫的是子類的方法。
如果是子類獨有的方法,則只能呼叫父類的方法。