如何从它的构造函数调用父类方法

问题描述:

我正在创建子类对象。我知道父类构造函数首先调用。如果我想调用父类打印方法,所以我使用'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 "); 
      } 
     } 

儿童

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

调用任何父类的方法使用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 
    } 
} 

“this”关键字是指当前类和“超级”的关键字是指它的父类或者其延伸或分别实现了接口。

+0

请看我的问题。 – vijayk 2013-04-24 06:18:01

清除我的概念感谢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