请让我知道重载是编译时多态并且它考虑调用方法的引用变量。假设我们有参数重载方法而不是重载方法调用将由我们调用方法的参数或对象抛出来决定。重载方法调用问题
请在下面找到我的代码:
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是鸟我以为它应该是乌鸦,因为我已经通过乌鸦对象(也是参考),并且重载的方法将被调用是由参考决定的。 –