請讓我知道重載是編譯時多態並且它考慮調用方法的引用變量。假設我們有參數重載方法而不是重載方法調用將由我們調用方法的參數或對象拋出來決定。重載方法調用問題
請在下面找到我的代碼:
package com.overload;
class Bird {
public void call(Bird bird) {
System.out.println("Bird");
}
}
class Crow extends Bird {
void call(Crow bird) {
System.out.println("Crow");
}
}
public class OverloadApp {
public static void main(String[] args) {
Bird bird = new Bird();
Bird crowBird = new Crow();
Crow crow = new Crow();
bird.call(bird); // 1 - O/P:Bird
bird.call(crow); // 2 - O/P:Bird
bird.call(crowBird);// 3 - O/P: Bird
crow.call(bird); // 4 - O/P:Bird
crow.call(crow); // 5 - O/P:Crow
crow.call(crowBird); // 6 - O/P:Bird
crowBird.call(bird); // 7 - O/P:Bird
crowBird.call(crow); // 8 - O/P:Bird
crowBird.call(crowBird); // 9 - O/P:Bird
}
}
對於bird.call(crow); // 2 - O/P:Bird
- 伯德將決定哪個重載的方法被調用或參數烏鴉決定哪一個重載的方法被調用。
由於看到O/P後我有點困惑。
感謝, 卡邁勒
你的問題是什麼?這不是很清楚。 – Carcigenicate
你好,只是想知道爲什麼O/P 2是鳥我以爲它應該是烏鴉,因爲我已經通過烏鴉對象(也是參考),並且重載的方法將被調用是由參考決定的。 –