方法覆盖引用作为参数传递

时间:2017-08-12 05:31:43

标签: inheritance parameter-passing method-overriding object-reference reference-parameters

这个问题是基于我存储孩子的参考时的概念 类转换为父类变量。并且,使用该变量我调用两个类中存在的方法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());
    }
}

为什么输出是"父母"在这种情况下?

0 个答案:

没有答案