class Person1{
String name;
int age;
Person1(){
System.out.println(“Persom的无参数构造函数”);
}
Person1(String name , int age){
this.name = name;
this.age = age;
System.out.println(“Person的两个参数的构造函数”);
}
void eat(){
System.out.println("吃饭");
}
}
创建一个名为Person1的类并且定义name,age,Person1(),Person1(String name , int age),eat ()变量和函数。
class Student1 extends Person1{
Student1(){
System.out.println(“student的无参数构造函数”);
}
}
创建子类Student1,并且自定义构造函数Student1。
public class Test03{
public static void main(String[] args){
Student1 student = new Student1();
}
}
创建Test03类调用Student1的构造函数,查看输出结果。
Persom的无参数构造函数;
student的无参数构造函数;
因为子类构造函数中,必须调用父类的构造函数,
Student(){
Super();
System.out.println();
}
编译器自动增加super()函数,调用父类构造函数,根据构造函数中的参数来决定调用哪一个构造函数,与this();调用同类中的构造函数不同。
super()好处: class Student1 extends Person1{
int grade;
Student1(){
System.out.println(“student的无参数构造函数”);
}
Student1(String name ,int age, int grade){
//this.name = name;
//this.age = age;
super(name,age);
this.grade = grade;
}
}
可以省略注释中重复的参数赋值代码,调用父类构造函数中相同参数的构造函数。编译过程中应先定义变量,我忘记了导致找不到变量。
注意:super()必须为第一条语句。并且extends语句只能继承父类的成员变量和成员函数。super()继承构造函数。!!!!