Public class Empolyee{
String name = “张三”;
Public void work(){
system.out.println(“员工在工作”);
}
Public class Manager extends Employee{
String name =“李四”;
Public void work(){
System.out.println(“经理在工作”);
}
Public void m1(){
super.work()
system.out.println(this.name);
system.out.println(name);
system.out.println(super.name)
}
}
很显然父类和子类中都有name属性。这个时候调用就不能用this,而是用super
1. Super不是引用类型,super中存储的不是引存地址。super指向的不是父类对象和this是有区别的。
2.super代表的是当前子类对象中的父类型特征
3. 什么时候使用super?
子类和父类都有某一个数据。例如。子类和父类都有name这个属性。如果要在子类中访问name属性,需要使用super
4.Super可以用在什么地方?
可以用在成员方法中。
super可以用在构造方法
this和super相同都不能用在静态方法中
5.super关键字用在构造方法中
语法:super(实参)
作用:通过子类的构造方法去调用父类的构造方法。
语法规则:一个构造方法第一行如果没有this(),也没有显示的去调用super(),系统会默认调用super()
注意:super();调用只能放在构造方法第一行
super()和this()不能共存