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

老静小哥_7120

老静小哥_7120

2025-10-29

414人浏览

原创

super关键字用于调用父类成员,包括方法、构造器和字段;在方法重写时可通过super.方法名()保留父类逻辑,如Animal示例中先输出动物叫声再打印狗叫;子类构造器必须在首行通过super(...)调用父类构造器以初始化继承成员,如Student类显式调用super(name);当子类与父类有同名字段时可用super.字段名访问父类字段,如Child类中super.info输出“Parent Info”;掌握这三种用法可有效复用父类代码并确保继承关系正确初始化。

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

在Java的面向对象编程中,super关键字用于访问父类的成员,包括属性、方法和构造器。当你在子类中重写了父类的方法,但又需要调用父类中被覆盖的方法时,super就显得尤为重要。合理使用它,可以让代码更清晰、更安全地复用父类逻辑。

调用父类被重写的方法

当子类重写了父类的方法,如果仍想执行父类原有的逻辑,可以通过super.方法名()来调用。

  • 适用于方法重写(Override)场景
  • 常用于在扩展功能的同时保留原有行为

例如:

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");
    }
}

输出结果为:

Animal makes a sound
Dog barks

在构造器中调用父类构造器

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

java-api-doc-generator
java-api-doc-generator

分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。

下载
  • 用于初始化从父类继承的成员
  • 若父类没有无参构造器,必须显式调用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.字段名访问父类的字段。

注意:这种情况较少见,通常建议避免字段重名以提高可读性。

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
    }
}

基本上就这些。掌握super的三种用法——调用父类方法、构造器和字段,能让你更好地控制继承关系中的行为复用。关键是理解何时需要保留父类逻辑,并正确使用super语法。不复杂但容易忽略细节,比如super()必须在构造器首行。

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

java 面向对象编程

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

2025.09.05

6975

14

java面向对象
java面向对象

本专题整合了java面向对象相关内容,阅读专题下面的文章了解更多详细内容。

2025.11.27

362

13

C++ 面向对象编程与设计模式实践
C++ 面向对象编程与设计模式实践

本专题整合了 C++ 面向对象编程的核心机制,涵盖类的定义与访问控制、构造函数与析构函数、拷贝语义与移动语义、继承与虚函数多态、抽象类与接口、运算符重载、友元函数等关键知识点,同时结合单例模式、工厂模式、观察者模式、策略模式等常用设计模式的 C++ 实现,帮助开发者写出结构清晰、易于维护的面向对象代码。

2026.04.09

364

30

Java 面向对象与核心编程机制
Java 面向对象与核心编程机制

系统讲解 Java 面向对象编程的核心知识体系,涵盖类的定义与封装、构造方法与 this/super 关键字、继承与方法重写、多态与向上向下转型、抽象类与接口的区别与设计原则、异常处理机制(try-catch-finally / 自定义异常)、泛型的类型参数与通配符、集合框架(List/Set/Map)的使用与遍历方式,帮助开发者全面掌握 Java 程序设计的核心机制与面向对象思维。

2026.04.17

243

15

go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

2025.09.05

6975

14

java面向对象
java面向对象

本专题整合了java面向对象相关内容,阅读专题下面的文章了解更多详细内容。

2025.11.27

362

13

C++ 面向对象编程与设计模式实践
C++ 面向对象编程与设计模式实践

本专题整合了 C++ 面向对象编程的核心机制,涵盖类的定义与访问控制、构造函数与析构函数、拷贝语义与移动语义、继承与虚函数多态、抽象类与接口、运算符重载、友元函数等关键知识点,同时结合单例模式、工厂模式、观察者模式、策略模式等常用设计模式的 C++ 实现,帮助开发者写出结构清晰、易于维护的面向对象代码。

2026.04.09

364

30

Java 面向对象与核心编程机制
Java 面向对象与核心编程机制

系统讲解 Java 面向对象编程的核心知识体系,涵盖类的定义与封装、构造方法与 this/super 关键字、继承与方法重写、多态与向上向下转型、抽象类与接口的区别与设计原则、异常处理机制(try-catch-finally / 自定义异常)、泛型的类型参数与通配符、集合框架(List/Set/Map)的使用与遍历方式,帮助开发者全面掌握 Java 程序设计的核心机制与面向对象思维。

2026.04.17

243

15

go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

2025.09.05

6975

14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习