在Java中如何使用super关键字访问父类_OOP父类方法调用方法分享

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

在java中如何使用super关键字访问父类_oop父类方法调用方法分享

在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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月2日 02:27:04
下一篇 2025年12月2日 02:27:26

相关推荐

发表回复

登录后才能评论
关注微信