super用于调用父类成员,可访问属性、方法和构造器。1. 子类重写方法后可用super.method()调用父类方法;2. 构造器中通过super()调用父类构造器,须位于首行;3. 子类同名字段隐藏父类字段时,用super.field访问父类属性;4. super不可在静态上下文中使用,且super()与this()不能共存于同一构造器首行。

在Java中,super关键字用于访问父类的成员,包括属性、方法和构造器。当你在子类中重写了父类的方法,但仍想调用父类中的原始实现时,super就显得非常有用。下面详细介绍如何使用super来调用父类的方法。
1. 调用父类的普通方法
当子类重写了一个方法后,如果仍需要执行父类中该方法的逻辑,可以使用 super.methodName() 来调用。
示例:
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免费学习笔记(深入)”;
Animal makes a soundDog barks
这里,super.makeSound() 明确调用了父类 Animal 的方法,再追加子类自己的行为。
2. 在构造器中调用父类构造器
子类构造器可以通过 super() 调用父类的构造器,必须放在构造器的第一行。
九歌
九歌–人工智能诗歌写作系统
322 查看详情
示例:
class Person { String name; Person(String name) { this.name = name; System.out.println("Person constructed: " + name); }}class Student extends Person { int studentId; Student(String name, int id) { super(name); // 调用父类构造器 this.studentId = id; System.out.println("Student ID: " + id); }}
创建 Student 对象时,会先初始化父类的 name 属性,再初始化子类的 studentId。
3. 访问被隐藏的父类属性
如果子类定义了与父类同名的字段,可以使用 super.fieldName 访问父类的字段。
示例:
class Parent { String info = "Parent info";}class Child extends Parent { String info = "Child info"; void printInfo() { System.out.println(super.info); // 输出:Parent info System.out.println(this.info); // 输出:Child info }}
4. 注意事项
super只能在子类中使用,不能在静态上下文中使用(如 static 方法)。 调用父类构造器的 super() 必须是子类构造器中的第一条语句。 不能同时使用 this() 和 super() 在同一个构造器中,因为两者都必须放在第一行。
基本上就这些。合理使用 super 可以让继承关系更清晰,代码复用更高效。理解其在方法、构造器和属性访问中的作用,是掌握Java面向对象编程的关键一步。不复杂但容易忽略细节。
以上就是在Java中如何使用super关键字访问父类_OOP父类方法调用方法分享的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1030615.html
微信扫一扫
支付宝扫一扫