Super访问父类成员

1 问题

当子类的成员变量或方法与父类同名时,可能模糊不清,应该怎么解决?如果子类重写了父类的某一个方法,我们又该怎么调用父类的方法?

2 方法

super调用成员属性:

当父类和子类具有相同的数据成员时,可能会模糊不清。我们可以使用以下代码片段更清楚地理解它。

创建一个父类Person,并有属性年龄:

Super访问父类成员_第1张图片

创建一个子类Student,具有和父类相同的属性:

Super访问父类成员_第2张图片

测试类:

Super访问父类成员_第3张图片

super调用成员方法:

当父类和子类都具有相同的方法名时,可以使用 super 关键字访问父类的方法。

创建一个父类Person:

Super访问父类成员_第4张图片

创建一个子类Student,具有和父类相同的方法:

Super访问父类成员_第5张图片

测试类:

Super访问父类成员_第6张图片

super调用成员属性:

Person类:
package boke.boke2;
public class Person {
   int age = 12;
}
Student类:
package boke.boke2;
import boke.boke2.Person;
public class Student extends Person {
   int age = 18;
   void display() {
       System.out.println("学生年龄:" + super.age);
   }
}
测试类:
package boke.boke2;
public class test {
   public static void main(String[] args) {
       Student stu = new Student();
       stu.display();
   }
}
super调用成员方法:

Person类:
package boke.boke21;
public class Person {
   void message() {
       System.out.println("This is person class");
   }
}
Student类:
package boke.boke21;
public class Student extends Person{
   void message() {
       System.out.println("This is student class");
   }
   void display() {
       message();
       super.message();
   }
}
测试类:
package boke.boke21;
public class test {
   public static void main(String args[]) {
       Student s = new Student();
       s.display();
   }
}

3 结语

针对super访问父类成员问题,通过实验,当子类的成员变量或方法与父类同名时,可以使用 super 关键字来访问。如果子类重写了父类的某一个方法,即子类和父类有相同的方法定义,但是有不同的方法体,此时,我们可以通过 super 来调用父类里面的这个方法。在以前的学习中,不清楚super的用法,本次实验让我们深刻理解到super在访问父类成员属性以及方法时的作用。

你可能感兴趣的:(java,开发语言)