关于压倒一切的原则

时间:2012-04-30 17:24:41

标签: java

我正在开发一个程序,在我的脑海中保持压倒一切的概念。

class Parent
{
    private void method1 () {
        System.out.println ("Parent's method1 ()");
    }
    public void method2 () {
        System.out.println ("Parent's method2 ()");
            method1 ();
    }
}

class Child extends Parent
{
    public void method1 ()  {
        System.out.println ("Child's method1 ()");
    }
       //overriding
    public void method2 ()  {
        System.out.println ("Child's method2 ()");
    }

    public static void main (String args []) {
        Parent p = new Child ();
        p.method2 ();//parent
    }
}

现在,当我调用method2()时,会调用父类method2(),如上所示,我在创建对象时传递父引用,但是如果我想访问子类method2(),则以类似的方式传递方法是直接创建子类的对象但是如果我想通过传递父引用以类似的方式调用子类method2(),那么请告知。

1 个答案:

答案 0 :(得分:-1)

Srinivas Reddy Thatiparthy回答了你问题的上一个版本。

如果覆盖子类中的方法,则任何子实例都将使用子类方法。

您可以通过在子方法中包含super.method2()方法调用,从子方法执行父方法。

或者,您可以将子项转换为父对象,然后调用方法。:

Parent parent = (Parent) child;
parent.method2();