为什么在超类构造函数中调用子类对象的私有方法是可能的?

时间:2015-12-24 19:02:48

标签: java

class ParentClass
{    
    double height;
    public ParentClass()
    {
       height=10;
       System.out.println("this : "+this.getClass().getName());
       showHeight();
    }
    private void showHeight()
    {
        System.out.println("Height is : "+height);
    }
}

class ChildClass extends ParentClass
{    
    double weight;
    public ChildClass(double weight)
    {
        this.weight=weight;
    }
}

public class CallingPrivateMethod
{    
    public static void main(String arg[])
    {
        ChildClass childObj=new ChildClass(32.65);
    }
}

这将打印以下内容:

this:ChildClass

高度为:10.0

1 个答案:

答案 0 :(得分:1)

你没有从子类中调用私有方法;它由超类(ParentClass)在其构造函数中调用,而该构造函数又从子类调用。它与基类调用私有方法的任何其他时间没有什么不同。