Java扩展类中,在初始化子类的时候,会先初始化父类的构造函数。
父类:
package test;
public class FatherClass
{
public FatherClass()
{
System.out.println("FatherClass Create");
}
}
子类:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass
{
public ChildClass()
{
System.out.println("ChildClass Create");
}
public static void main(String[] args)
{
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
输出结果:
C:>java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create
package com.me;
class Books {
String name;
public Books(String name){
this.name="hello";
}
}
class Book extends Books{
String name;
String author;
public Book(String name){
this.name=name;
}
}
此时会出错,当父类写了构造函数后父类默认的构造函数就被屏蔽,此时在子类写构造函数时必须调用父类的某个(当父类有多个构造函数时)
构造函数来初始化父类
因此我们要养成一个习惯:在写一个类的时候先写一个类的空的构造函数如:
public Books(){
}