super用于应用被子类隐藏的父类变量和被子类覆盖的父类方法。子类构造方法中可以通过super(实际参数)调用父类的构造方法,但必须是构造方法的第一条语句。如果自己没有使用这条语句,子类也会调用父类构造函数,因为每个子类构造函数在第一行都会有一条隐式的super()语句。
关键字super的使用规则:
super.变量名:引用父类中的变量
super.方法名:调用被子类覆盖的父类中的方法
super(参数):子类构造方法中调用父类构造方法
注意:构造方法中this()和super()不能同时都有
class Fu //extends Object
{
intnum ;
Fu()
{
//super();
num=60;
System.out.println("furun");
}
Fu(int x)
{
System.out.println("fu...."+x);
}
}
class Zi extends Fu
{
Zi()
{
super(); //调用父类的构造方法,所以主方法在调用子类构造函数时会先执行父类构造函数里的打印语句“fun run”
//super(4);
System.out.println("zirun");
}
Zi(intx)
{
this();
//super();
//super(3);
System.out.println("zi..."+x);
}
}
class ExtendsDemo4
{
publicstatic void main(String[] args)
{
Ziz = new Zi(0);
System.out.println(z.num);
}
}