super关键字
- super关键字和this关键字对比来学习。this代表的是当前对象。super代表的是当前对象中的父类型特征
- super不能使用在静态上下文中
- “super.”大部分情况下是可以省略的。什么时候不能省略?
- 当父类和子类中定义了相同的属性(实例变量)或者相同方法(实例方法)时,如果需要在子类中访问父类的属性或方法时,super.不能省略
- this可以单独输出,super不能单独输出
- super (实参);通过子类的构造方法调用父类的构造方法,目的是为了完成父类型特征的初始化
public class Person {
String name;
int age;
int sex;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
class E extends Person{
int sex;
public E(String name, int age,int sex) {
super(name, age); //复用父类的构造方法完成变量初始化
this.sex = sex;
}
}
- 当一个构造方法第一行没有显示的调用“super(实参):”,也没有显示的调用“this(实参)”,系统会自动调用super()。因此一个类中的无参数构造方法建议显示的定义出来
- super()方法是为了给父类的变量进行初始化,所以必须得有
-
super(实参)这个语法只能出现在构造函数第一行
-
在Java语言中只要new对象,Object的无参构造方法一定执行