之情给大家介绍了一下super调用父类构造方法方面的内容,下面要接着给大家介绍的就是super访问父类成员方面的内容,分别对super调用成员属性以及super调用成员方法做了详细介绍。
在子类的成员变量或方法与父类同名的时候,可以使用super关键字来访问。
假如,子类重写了父类的某一个方法,也就是子类和父类有相同的方法定义,但是有不同的方法体,这个时候,可以通过super来调用父类里面的这个方法。
使用super访问父类中的成员与this关键字的使用相似,只不过它引用的是子类的父类。
语法格式:(member 是父类中的属性或方法,使用super访问父类的属性和方法时不用位于第一行)
super.member
super调用成员属性
在父类和子类具有相同的数据成员的时候,JVM可能会模糊不清,这个时候,就可以使用下面的代码来更清楚的理解它:(父类和子类都有一个成员变量age,使用super关键字访问Person类中的age变量)
class Person { int age = 12; } class Student extends Person { int age = 18; void display() { System.out.println("学生年龄:" + super.age); } } class Test { public static void main(String[] args) { Student stu = new Student(); stu.display(); } }
输出结果:
学生年龄:12
super调用成员方法
当父类和子类都具有相同的方法名的时候,使用super关键字访问父类的方法。
代码:
class Person { void message() { System.out.println("This is person class"); } } class Student extends Person { void message() { System.out.println("This is student class"); } void display() { message(); super.message(); } } class Test { public static void main(String args[]) { Student s = new Student(); s.display(); } }
输出结果:
This is student class This is person class
假如,如果只调用方法message( ),是当前的类message( )被调用,使用super关键字时,是父类的message( ) 被调用。
super访问父类成员的内容就给你介绍到这里了,请继续多多的关注奇Q工具网吧,更多相关java基础知识,可以为你分享。
推荐阅读: