super. 关键字:
在子类的方法中,可以通过super.属性或 super.方法的方式。显示调用父类提供的属性方法。在通常情况下可以省略;但如果子类中也定义了一个与父类同名的属性时(当子类的属性和父类的属性重名时),访问父类的属性就必须使用super修饰符来调用父类的属性,否则会默认调用子类的属性,调用方法时也是如此;
接下来我们看一个例子:
先创建两个简单的类:Person 和 Student
// Person class
public class Person {
int age = 18;
public void eat(){
System.out.println("吃饭");
}
}
public class Student extends Person{
int age = 22;
public void ext(){
System.out.println(age);
// 这里的age默认隐藏了this关键字;this.age
System.out.println(this.age);
System.out.println(super.age);
eat();
}
}
Student类继承自Person类,两个类同时都有age属性,所以在调用时,就需要使用super关键字;
执行一下结果:
调用方法也是同理,如果子类中的方法与父类的方法重名,也就是对父类方法进行重写,想要调用父类中方法,就要使用super关键字。
代码给到,大家可以自行测试:
//Person类
package 你的包名;
public class Person {
public void eat(){
System.out.println("吃饭");
}
}
//Student
package 你的包名;
public class Student extends Person{
public void eat(){
System.out.println("学生在学校吃饭");
}
public void ext(){
eat();
this.eat();
super.eat();
}
}
//main
package 你的包名;
public class test {
public static void main(String args[]){
Student stu = new Student();
stu.ext();
}
}