super关键字类似于this关键字,如果你对this关键字有所了解的话,相信这个super不难,应为this代表当前对象的引用,而super代表父类对象的引用。。
你上面这个例子中B继承了A,,那么他们的属性和普通方法,构造方法都可以被继承.即使没有super 也会先调用父类的构造函数 super关键字用来显示的调用子类的方法。。如果要在子类的构造方法中调用父类的构造方法,则需要在子类构造方法的第一句用super关键字调用,比如super(),调用父类无参的构造方法,super(参数列表),调用父类有参数的构造方法。必须写在子类构造函数的第一条,super还可以调用父类的普通方法super.method(),或supermethod(参数列表);
参考代码:
class Employee
{
private String name;
private int age;
private double salary=2000.0;
public void displayInfo(){
System.out.println("name:"+name+" ,age="+age);
}
public Employee(String name,int age,double salary){
this.name=name;
this.age=age;
this.salary=salary;
}
}
class Manager extends Employee
{
private double bonus;
private String position;
public Manager(String name,int age,double salary,String position){
super(name,age,salary);//调用父类构造函数
this.position=position;
super.displayInfo();
}
public void setBonus(double bonus){
this.bonus=bonus;
}
}
public class Demo
{
public static void main(String []args){
Manager m=new Manager("Tanwei",20,5000,"Java");
}
}
|