读书人

初学者遇到一个优点混乱的有关问题

发布时间: 2013-12-02 12:00:40 作者: rapoo

菜鸟遇到一个优点混乱的问题——java继承中的构造方法

class SuperClass{
private int n;

SuperClass(){
print("SuperClass().");
}
SuperClass(int n){
print("SuperClass("+n+").");
this.n=n;
}
}

class SubClass extends SuperClass{
private int n;

SubClass(){
this(100);
//super(100);
print("SubClass().");

}

SubClass(int n){

print("SubClass("+n+").");
this.n=n;
}
}
public class TestSuperSub {
public static void main(String[] args) {
SubClass sub=new SubClass();
}

}


为什么在用SubClass()方法中的this(100)调用SubClass(int n)构造器的时候,程序不再调用SuperClass中的SuperClass(){print("SuperClass().");}? 不是每次调用子类构造器的时候,都会调用父类的构造器吗? java 继承 构造器 super this
[解决办法]
肯定会调用SuperClass()构造器,楼主看错了吧?
另外,应该是System.out.print(),直接print()肯定不行
[解决办法]
SuperClass().
SubClass(100).
SubClass().

这是正确的调用结果.
[解决办法]
①创建一个对象,只会调用一个构造器来初始化对象,假如可以调用多个构造器,会乱套的;
②“不是每次调用子类构造器的时候,都会调用父类的构造器吗?”SuperClass(int n),难道就不属于父类的构造器了?

读书人网 >J2SE开发

热点推荐