Java中super关键字及其作用
super关键字及其作用
A:super关键字指代父类对象引用(super代表父类存储空间的标识)
B:作用:
a:访问被子类隐藏的父类同名成员变量和成员方法 ;
b:调用父类构造方法,且必须在子类构造方法的第一条代码;(子类构造方法执行的时候,如果没有用super显式调用父类构造方法,将默认执行super(),即系统会默认调用父类不带参的构造方法,因此,最好定义父类不带参的构造方法,以免程序报错!)
如果不是放在第一条语句上,就可能对父类的数据进行了多次初始化,所以必须放在第一条语句上。
C:不能在静态方法中使用super和this关键字。
class Father {
int age;
public Father() {
System.out.println("Father的无参构造方法");
}
public Father(String name) {
System.out.println("Father的带参构造方法");
}
}
class Son extends Father {
public Son() {
// super();
System.out.println("Son的无参构造方法");
}
public Son(String name) {
// super();
System.out.println("Son的带参构造方法");
}
}
class ExtendsDemo6 {
public static void main(String[] args) {
//创建对象
Son s = new Son();
System.out.println(s);
System.out.println("------------");
Son s2 = new Son("张三");
System.out.println(s2);
}
}