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();

    }
}

1つの抽象メソッドshow()と1つの具象メソッドDisplay()を使用して抽象クラスsuperparentを作成します。次に、1つの抽象メソッドdetail()と具象メソッドdisplay()を使用してsuperparentを拡張し、superparentからオーバーライドしてshowを実装します。 ()スーパーペアレントで抽象化されたメソッド、今私は子クラスを作成して親を拡張し、親で抽象化されたメソッドDetail()を実装し、親とスーパーペアレントにあるdisplay()メソッドをオーバーライドし、親にあるshow()をオーバーライドします。ここで、子のインスタンスを作成してすべてのメソッドを実行すると、すべての子メソッドが呼び出されます。親メソッドを実行する場合は、コンストラクターでsuper.parentメソッドを使用し、正常に実行します。ただし、superparentメソッド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 に答える