-1

我正在开发一个程序,将覆盖的概念牢记在我的脑海中。

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() 那么如何可能请告知。

4

1 回答 1

-1

Srinivas Reddy Thatiparthy 回答了您之前版本的问题。

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

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

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

Parent parent = (Parent) child;
parent.method2();
于 2012-04-30T17:41:15.887 回答