如何在Java中通过super访问父类成员

super关键字用于访问父类成员。1. 调用父类方法:子类重写方法后可用super.method()调用父类原方法;2. 访问父类属性:子类隐藏父类字段时可用super.field访问;3. 调用父类构造器:子类构造器首行用super(参数)初始化父类状态,若父类无无参构造器则必须显式调用。合理使用可提升代码清晰度与维护性。

如何在java中通过super访问父类成员

在Java中,super关键字用于访问父类的成员(包括属性、方法和构造器)。当子类继承父类时,可能会重写某些方法或隐藏父类属性,这时就可以使用super来明确调用父类中被覆盖的成员。以下是具体的使用方式。

访问父类的方法

当子类重写了父类的方法,但仍想调用父类的原始实现时,可以使用 super.方法名()

语法:super.methodName() 适用于实例方法的调用 常用于在重写方法中扩展父类行为

示例:

九歌 九歌

九歌–人工智能诗歌写作系统

九歌 322 查看详情 九歌

class Animal {    void makeSound() {        System.out.println("Animal makes a sound");    }}class Dog extends Animal {    @Override    void makeSound() {        super.makeSound(); // 调用父类方法        System.out.println("Dog barks");    }}

输出结果会先打印父类的内容,再打印子类新增的内容。

立即学习“Java免费学习笔记(深入)”;

访问父类的属性

如果子类定义了与父类同名的字段,子类会隐藏父类的字段。此时可用 super.属性名 显式访问父类的属性。

语法:super.fieldName 用于访问被隐藏的父类成员变量 不常用,建议避免字段名冲突

示例:

class Parent {    String name = "Parent";}class Child extends Parent {    String name = "Child";    void printNames() {        System.out.println("Child name: " + name);        System.out.println("Parent name: " + super.name);    }}

这样可以同时访问两个同名但不同作用域的变量。

调用父类的构造器

子类构造器中可以通过 super() 调用父类的构造方法,必须放在构造器的第一行。

语法:super(参数) 用于初始化从父类继承的状态 若父类没有无参构造器,必须显式调用super(有参)

示例:

class Person {    String name;    Person(String name) {        this.name = name;    }}class Student extends Person {    int rollNo;    Student(String name, int rollNo) {        super(name); // 必须调用父类带参构造器        this.rollNo = rollNo;    }}

如果不写 super(…),而父类又没有无参构造器,编译会报错。

基本上就这些。合理使用 super 可以增强代码的可维护性和逻辑清晰度,尤其是在继承体系较深的情况下。注意不要滥用,保持语义明确。

以上就是如何在Java中通过super访问父类成员的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1030177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月2日 02:22:40
下一篇 2025年12月2日 02:23:01

相关推荐

发表回复

登录后才能评论
关注微信