2014-03-26 54 views
0

我想打電話從兒子一個父類的方法調用父類的方法,我不知道父類的方法是如何工作的:由兒子覆蓋,與兒子的另一種方法

A有方法:myMethod(double d)

public class B extends A{ 

    //overrides 
    public void myMethod(double d){ 
     doSomthing(); 
     super.myMethod(d); 
    } 

    public void anotherMethod(...){ 
     super.myMethod(d); 
    } 

} 

instanceOfB.myMethod(d)工作正常。問題是instanceOfB.anotherMethod(...)它只是做instanceOfB.myMethod(d)

我想要B的實例運行myMethod的父。
有什麼建議嗎?

+0

向我們提供的A級 – darijan

+0

你的意思的實現,'b.anotherMethod(...)'運行''A'的myMethod'? – Maroun

回答

0

你在做錯事。它調用super.myMethod()。我組裝這些代碼很快測試

public class Test { 

    public static void main(String ... args) { 
     B b= new B(); 
     b.anotherMethod(); //the output is 1 which is correct 
     b.myMethod(2); //the output is somth and then 2 which is correct 
    } 

    public static class A { 
     public void myMethod(double d) { 
      System.out.println(d); 
     } 
    } 

    public static class B extends A{ 

     //overrides 
     public void myMethod(double d){ 
      doSomthing(); 
      super.myMethod(d); 
     } 

     private void doSomthing() { 
      System.out.println("somth"); 
     } 

     public void anotherMethod(){ 
      super.myMethod(1); 
     } 

    } 

} 
+0

我也這麼認爲。但是你的陳述與我的例子有什麼關係?你向我們展示你認爲好?這些是內部類 – darijan

+0

對不起,錯誤的評論 – Keerthivasan

+0

事情是我不知道如何寫父方法.. –