1.super();
当一个子类继承了父类,就表明这个子类继承了父类的一切,当然除了构造函数,那么,当实例化子类对象的时候,理应只初始化子类的构造函数,但是,并不是这个样子的,这里就要提到super();实际上,在初始化子类对象的时候,编译器默认的在子类的构造函数中加入<super()>,意思是去调用父类的构造函数,所以就有了先打印父类构造函数,然后子类构造函数。
下面用代码详细说明
class People//父
{
Pelple()
{
System.out.println("我是父类的构造函数");
}
}
class Student extends People//字
{
Student()
{
System.out.println("我是子类的构造函数");
}
}
//下边调用
class Test
{
public static void main(String[]args)
{
//实例化子类对象
Student s=new Student();
}
}
//打印结果是:
我是父类的构造函数
我是子类的构造函数
2.解决冗余问题
代码如下
class People//父
{
String name;
int age;
Pelple(String name,int age)
{
this.name=name;
this.age=age;
}
}
class Student extends People//字
{
String address;
Student(String name,int age,String address)
{
super(name,age);//调用父类的构造函数
this.address=address;
}
}