super关键字用于访问父类成员。1. 调用父类方法:子类重写方法后可用super.method()调用父类原方法;2. 访问父类属性:子类隐藏父类字段时可用super.field访问;3. 调用父类构造器:子类构造器首行用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
微信扫一扫
支付宝扫一扫