Super 关键字
1. super 不是引用类型,super中存储的不是内存地址,super指向的不是父类对象
2. Super代表的是当前子类对象中的父类型特征
3.什么时候使用super?
子类和父类中都有某个数据/方法,例如子类和父类中都有name这个属性,
如果要在子类中访问父类中的name属性,则用super.name;
4.super可以用在什么地方?
Super可以用在成员方法中,不能使用在静态方法中;
Super可以用在构造方法中,
通过子类的构造方法去调用父类的构造方法,目的在于给当前子类对象的父类型特征赋值
Super()调用了父类中的构造方法,但并不会创建父类对象
语法:super(实参);
作用:通过子类的构造方法去调用父类的构造方法
语法规则,一个构造第一行如果没有this(),也没有显示的去调用super();系统会默认调用super();
Super()和this()不能共存哈
5.this 和super相同,都不能用在静态上下文中
Employee.java
Public classEmployee{
String name=”B”;
//成员方法
Public void work{
System.out.println(“员工在工作!”);
}
}
Manager.java
Public classManager extends Employee{
String name=”A”;
//子类将父类中的work方法重写了
Public void work{
System.out.println(“经理在工作!”);
}
Public void m1{
//this .work();等同于work();
super.work();//需求是:需输出员工在工作!
}
System.out.println(this.name);//输出B
System.out.println(name); //输出B
System.out.println(super.name);//输出A
}
Test01.java
Public classTest01{
Public static voidmain (string [] args){
Manager m=newManager();
m.m1();
}
}