オーバーロードがコンパイル時の多態性であることを私に教えてください。メソッドを呼び出すための参照変数を考慮してください。オーバーロードされたメソッドが呼び出すパラメータオーバーロードされたメソッドがある場合、メソッドを呼び出すパラメータまたはオブジェクトスローによって決定されると仮定します。オーバーロードメソッド呼び出しの問題
私のコードの下に見つけてください:bird.call(crow); // 2 - O/P:Bird
について
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
}
}
- 鳥がメソッドが呼び出されたり、パラメータカラスが呼び出されるメソッドをオーバーロードしていることを決定されたオーバーロードされたかを決定します。
O/Pを見てから少し混乱しています。
おかげで、 カマル
あなたの質問がありますか?これはあまり明確ではありません。 – Carcigenicate
こんにちは、ちょうどO/P 2が鳥である理由を知りたかったのですが、私はcrowオブジェクト(参照も含む)を渡し、オーバーロードされたメソッドが呼び出されるように、Crowでなければならないと思っていました。 –