1
abstract class SuperParent
{
    public abstract void Show();
    public void Display()
    {
        System.out.println("HI............I m ur grandpa and in Display()");
    }
}

abstract class Parent extends SuperParent
{
    public abstract void Detail(); 
    public void  Show()
    { 
        System.out.println("implemented  abstract Show()method of Superparent in parent thru super");
    }
    public void Display()
    {
        System.out.println("Override display() method of Superparent in parent thru super");    
    }
}

public class Child extends Parent
{
    Child()
    {
        super.Show();
        super.Display();
    }
    public void  Show()
    {
        System.out.println("Override show() method of parent in Child");
    }
    public  void Detail()
    {
        System.out.println("implemented abstract Detail()method of parent ");
    }
    public void Display()
    {
        System.out.println("Override display() method of Superparent and Parent in child ");    
    }

    public static void main(String[] args) {
        Child c1= new Child();
        c1.Show();
        c1.Display();

        Parent p1=new Child();
        p1.Detail();
        p1.Display();
        p1.Show();

    }
}

我用一个抽象方法 show() 和一个具体方法 Display() 创建了一个抽象类超父类。现在我们创建一个父类,用一个抽象方法 detail() 和具体方法 display() 扩展父类,该方法从父类覆盖并实现 show () 方法在父类中是抽象的,现在我创建了一个子类扩展父类,实现方法 Detail() 是父类中的抽象方法,覆盖父类和超父类中的 display() 方法和父类中的覆盖 show() . 现在我创建一个子实例并运行所有方法,它调用所有子方法,很好。如果我们想运行父方法,那么我们在构造函数中使用 super.parent 方法,运行很好。但是我如何运行超父方法 display()从儿童班。

4

1 回答 1

1

Java 语言不支持此功能。

您必须SuperParent.show()从以下位置调用Parent并调用此代码Child

abstract class Parent extends SuperParent {

    ...

    public void superParentShow() {
        super.Show();
    }
}

然后打电话

super.superParentShow()

Child.

相关问题:

于 2012-05-17T07:51:06.260 回答