super关键字的使用
1.使用范围
继承关系中的子类范围内
2.作用
super相当于是指向当前对象的父类的引用
1.super();
调用父类的无参数的构造方法
-
创建子类对象的时候(调用子类构造方法),无论如何都会调用到父类的构造方法。
-
一个类如果没有显示的继承一个父类,则默认继承自Object顶级父类。
2.super.变量名
调用父类的非私有成员变量
3.super.方法名
调用父类的非私有成员方法
3.注意事项
1.super能出现在实例方法和构造方法中
2.super不能出现在静态方法中
4.测试代码
//父接口
class Father {
// 父类变量
String name = "父亲";
// 无参构造
public Father() {
System.out.println("父类无参构造方法被调用...");
}
// 成员方法
public void method() {
System.out.println("父类成员方法方法被调用...");
}
}
//子接口
class Son extends Father {
// 子类变量
String name = "儿子";
// 无参构造
public Son() {
super(); // 1.在子类构造方法中调用父类构造方法
System.out.println("子类无参构造方法被调用...");
}
// 成员方法
public void method() {
System.out.println("子类成员方法方法被调用...");
String fatherName = super.name; // 2.在子类中调用父类变量
String sonName = name;
System.out.println("父类变量值:" + fatherName + ",子类变量名:" + sonName);
super.method(); // 3.在子类中调用父类成员方法
}
}
//测试类
public class SuperTest {
public static void main(String[] args) {
// 创建子类对象
Son son = new Son();
son.method();
}
}
运行结果:
父类无参构造方法被调用…
子类无参构造方法被调用…
子类成员方法方法被调用…
父类变量值:父亲,子类变量名:儿子
父类成员方法方法被调用…