2013-04-24 88 views
1

我正在創建子類對象。我知道父類構造函數首先調用。如果我想調用父類打印方法,所以我使用'this.print()',但這是不工作。 請建議我如何在不創建父類對象的情況下調用父類的print()方法... 感謝高級。如何從它的構造函數調用父類方法

public class Test 
     { 
      public static void main(String[] args) 
      { 
       Child Child = new Child(); 
      } 
     } 

     class Parent 
     { 
      void print() 
      { 
       System.out.println("parent class print method"); 
      } 

      Parent() 
      { 
       this.print(); 
      } 
     }  

     class Child extends Parent 
     { 
      void print() 
      { 
       System.out.println("child class print method "); 
      } 
     } 

回答

5
兒童

constructor可以調用父類的方法,如:

super.print(); 

看到java docs

public class Superclass { 

    public void printMethod() { 
     System.out.println("Printed in Superclass."); 
    } 
}  



public class Subclass extends Superclass { 

    // overrides printMethod in Superclass 
    public void printMethod() { 
     super.printMethod(); 
     System.out.println("Printed in Subclass"); 
    } 
    public static void main(String[] args) { 
     Subclass s = new Subclass(); 
     s.printMethod();  
    } 
} 
+0

+1爲正確答案。 :) – 2013-04-24 06:13:48

+0

我知道我可以通過使用super關鍵字從子類調用父類方法,但我想從父類構造函數調用父方法。如何發生這種情況? – vijayk 2013-04-24 06:16:16

+0

它的一個和相同的調用構造函數內的方法..好嗎? – 2013-04-24 06:21:18

1

調用任何父類的方法使用super。這也適用於構造函數:

class Child extends Parent 
{ 
    void print() 
    { 
     System.out.println("child class print method "); 
    } 

    Child() { 
     super.print(); // parent print method 

     this.print(); // child print method 
    } 
} 
0

「this」關鍵字是指當前類和「超級」的關鍵字是指它的父類或者其延伸或分別實現了接口。

+0

請看我的問題。 – vijayk 2013-04-24 06:18:01

0

清除我的概念感謝anwser我的問題..

public class Test 
{ 
    public static void main(String[] args) 
    { 
     Child Child = new Child(); 
    } 
} 

class Parent 
{ 
    void print() 
    { 
     System.out.println("parent class print method"); 
    } 

    Parent() 
    { 
     this.print(); 
    } 
}  

class Child extends Parent 
{ 
    void print() 
    { 
     super.print(); 
    } 
} 

輸出:

parent class print method 
+0

最後你打電話給super.print吧? :) – 2013-04-24 07:09:44