2012-05-17 38 views
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(); 

    } 
} 

我創建了一個抽象類superparent一個抽象方法秀()和一個具體的方法顯示()。現在,我們創建一個父類擴展同一個抽象方法的細節superparent( )和具體方法display()從superparent重寫並實現show()方法在superparent中是抽象的,現在我創建一個子類extends Parent,實現方法Detail()在Parent和overide display()方法中是抽象的這是在父母和超父親和overide顯示()在父母。現在我創建一個孩子的實例,並運行所有的方法,它調用所有的孩子方法,罰款。如果我們想要運行父方法,然後我們在構造函數中使用super.parent方法,運行良好。但我如何運行superparent方法顯示()從孩子階級。我如何使用superparent類方法從子類

+0

這是不可能的。 –

+0

whats impssible,你會plz指定。 –

回答

1

這不受Java語言支持。

你必須調用從ParentSuperParent.show()Child調用該代碼:

abstract class Parent extends SuperParent { 

    ... 

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

,然後從Child調用

super.superParentShow() 

相關問題:

+0

如果我們使用一系列abstarct類和覆蓋方法,那麼我們不能爲每一種superparent.its都沒有價值的代碼進行編碼。並且不可行 –

+1

是的。但你不應該那樣做。如果Child類擴展了Parent,那麼它就是一個Parent,如果Parent意思是子類,那麼它應該爲子類提供必要的方法,但不是更多。提供來自祖父母的每種方法都是打破封裝的最佳方式。 –

+0

我們知道super用於執行父級方法,構造函數意味着如果我們使用superparent類型強制轉換超級父類,那麼它具有父類的引用,那麼我們可以使用superparent的方法。我們可以投超級的 –

相關問題