1
此問題基於這樣一個概念,即當我將子類 的類的引用存儲到父類變量中時。並且使用該變量時,我調用兩個類中都存在的方法Child- Parent.Here子方法應該被引發,但是,當我通過引用作爲參數時不會發生,爲什麼?方法重寫引用作爲參數傳遞
class Parent
{
public void show()
{
System.out.println("Parent");
}
}
class Child extends Parent
{
public void show()
{
System.out.println("Child");
}
}
public class Call {
public static void main(String args[])
{
Parent p=new Child();
p.show();
}
}
產出預期: 「兒童」 實際輸出: 「孩子」[預期]
但是,
class Parent
{
public void show(Parent x)
{
System.out.println("Parent");
}
}
class Child extends Parent
{
public void show(Child x)
{
System.out.println("Child");
}
}
public class Call {
public static void main(String args[])
{
Parent p=new Child();
p.show(new Child());
}
}
爲什麼輸出是 「父」,在這種情況下?