java super关键字,super访问父类成员详解

KLQ 2020-09-02 15:39:22 java常见问答 5416

之情给大家介绍了一下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基础知识,可以为你分享。

推荐阅读:

java继承(extends),单继承简单介绍

java继承(extends)实例分享

java继承(extends)简单介绍