子类只是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或者显示)。
【注】如果父类中没有定义好构造器(无参数或者有参数);则在子类继承父类后,无法构建相应的无参数或者有参数的构造器。
如果父类的构造器带有参数,则必须在子类的构造器中显示地通过super关键字掉哟父类的构造器并配以适当的参数列表。
如果父类构造器没有参数,则在子类的构造器中不需要使用super关键字调用父类的构造器,系统会自动调用父类的无参构造器。
上代码示例
如果父类构造器没有参数,则在子类的构造器中不需要使用super关键字调用父类的构造器,系统会自动调用父类的无参构造器。
package com.test;
class A {
int age;
void eat() {
System.out.println("A: eatting!");
}
A() {
System.out.println("I am a A");
}
A(int age) {
System.out.println("I am a A, my age's " + age );
this.age = age;
}
}
class B extends A {
int age;
B () {
// 自动调用A的无参数构造器
System.out.println("I am a B");
}
B (int age) {
super(age); // 显示调用A的有参数构造器
System.out.println("I am a B, my age's " + age);
}
}
public class Test10 {
public static void main(String[] args) {
// TODO Auto-generated method stub
A a = new A();
A a2 = new A(10);
B b = new B();
B b2 = new B(12);
}
}
结果返回:



