1.
super-class:
SuperClass(){out.println("SuperClass()");}
SuperClass(int ival){out.println("SuperClass(int)");}
sub-class:
SubClass(){out.println("SubClass()");}
SubClass(int ival){out.println("SubClass(int)");}
SubClass(double dval){out.println("SubClass(double)");}
new SubClass() 情况
1. SuperClass()
2. SubClass()
new SubClass((int)ival) 情况
1. SuperClass()
2. SubClass(int)
new SubClass((double)dval) 情况
1. SuperClass()
2. SubClass(double)
根据以上三个例子,子类SubClass的任何构造函数,在不指定父类constructor的情况下,都会调用父类的default constructor SuperClass()。
2.
super-class:
SuperClass(int ival){out.println("SuperClass(int)");}
sub-class:
SubClass(){out.println("SubClass()");}
SubClass(int ival){out.println("SubClass(int)");}
SubClass(double dval){out.println("SubClass(double)");}
这种情况下,SubClass的三个constructor会报错,因为没有缺省的父类构造函数可以调用。
3.
super-class:
SuperClass(){out.println("SuperClass()");}
SuperClass(int ival){out.println("SuperClass(int)");}
sub-class:
SubClass(double dval){
super(1)
out.println("SubClass(double)");
}
new SubClass((double)dval)
1. SuperClass(int)
2. SubClass(double)
在SubClass子类中可以指定调用哪个父类constructor,
通过super(args)来指定