Java面向对象继承、this与super关键字实例详解

 更新时间:2026年06月22日 09:16:40   作者:2601_96363441  
本文详细解析Java继承的核心规则、this和super关键字的用法及方法重写规范,适合编程新手学习、复习与面试准备,涵盖单继承机制、成员访问规则、构造方法调用顺序及权限限制等关键知识点,感兴趣的朋友跟随小编一起看看吧

简介:继承是Java面向对象三大特性之一,也是实现代码复用、构建类层级关系、实现多态的核心基础。本文详细梳理继承核心规则、this和super关键字用法、方法重写规范,内容精简干货满满,适合新手学习、期末复习与面试复盘。

一、继承核心概念与特性

继承是Java面向对象三大核心特性之一,核心作用是实现代码复用、减少冗余代码,让类与类之间形成层级从属关系。Java通过 extends 关键字完成继承定义,语法上严格遵循单继承机制:一个子类只能直接继承一个父类,但一个父类可以被多个子类继承,有效规避了多继承带来的逻辑冲突。子类继承父类后,可直接使用父类中非私有(非private)的成员变量和成员方法,父类私有成员仅能在父类内部访问,无法被子类继承和调用。除此之外,继承是Java实现多态机制的核心前提,为后续程序拓展提供了基础支撑。
继承基础代码示例

// 父类
class Father {
    // 非私有成员,可被子类继承
    public String name = "父类成员";
    public void show() {
        System.out.println("父类通用方法");
    }
    // 私有成员,无法被子类继承
    private void privateMethod() {
        System.out.println("父类私有方法");
    }
}
// 子类继承父类
class Son extends Father {
    // 子类独有成员
    public int age = 18;
}
public class Test {
    public static void main(String[] args) {
        Son son = new Son();
        // 调用继承的父类成员
        System.out.println(son.name);
        son.show();
        // 调用子类自身成员
        System.out.println(son.age);
    }
}

二、this与super关键字核心用法

在Java继承体系中,this 和 super 是一对核心关键字,分别对应本类和父类的资源调用,精准解决了继承中的成员调用冲突问题。this 代表当前本类对象,可用于调用本类的成员变量、成员方法、本类构造方法,用于区分局部变量和成员变量。super 代表父类对象,专门用于访问父类的属性、普通方法和构造方法。重点规则:子类的所有构造方法中,第一行都会默认隐藏 super() 无参构造语句,会优先执行父类无参构造,完成父类资源初始化,再执行子类构造逻辑,保证继承体系的完整性。
this、super 关键字代码示例

class Father {
    public String info = "父类属性";
    public Father() {
        System.out.println("父类无参构造执行");
    }
}
class Son extends Father {
    public String info = "子类属性";
    public Son() {
        // 默认隐藏 super(),优先调用父类无参构造
        System.out.println("子类构造执行");
    }
    public void showInfo() {
        this.info;  // 调用本类(子类)属性
        super.info; // 调用父类属性
        System.out.println("本类属性:" + this.info);
        System.out.println("父类属性:" + super.info);
    }
}
public class TestDemo {
    public static void main(String[] args) {
        new Son().showInfo();
    }
}

**

三、方法重写核心规则

**

方法重写(Override)是子类基于继承拓展功能的核心操作,指子类对父类中已有的非私有、非静态、非final普通方法进行重新实现,用于适配子类独有的业务逻辑,让方法功能更贴合子类特性。方法重写有严格的语法规范:子类重写方法的访问权限不能比父类更严格(如父类public,子类不能改为protected/private),且方法名、参数列表、返回值必须与父类保持一致。核心禁忌:父类被private修饰的私有方法无法被重写,仅为父类内部使用。合理的方法重写是实现多态、提升程序拓展性的关键。
方法重写代码示例(含权限规则演示)

class Animal {
// 父类公共方法,允许重写
public void eat() {
System.out.println(“动物进食”);
}
// 私有方法,无法被重写
private void sleep() {
System.out.println(“动物睡觉”);
}
}
// 子类重写父类方法
class Cat extends Animal {
// 重写父类方法,权限与父类一致(合法)
@Override
public void eat() {
// 子类独有业务逻辑
System.out.println(“小猫吃鱼干”);
}
}
public class OverrideTest {
public static void main(String[] args) {
Animal animal = new Cat();
// 运行子类重写后的方法
animal.eat();
}
}

四、核心知识点总结*

继承核心:通过extends关键字实现,Java仅支持单继承,核心价值是代码复用、消除冗余;

  • 继承范围:子类仅继承父类非私有成员,private私有成员无法被继承和直接访问;
  • 关键字作用:this指代当前本类对象,super指代父类对象;子类构造默认优先执行super()调用父类无参构造;
  • 重写规则:子类重写父类非私有方法,权限不能比父类严格,私有方法、静态方法、final方法不可重写;
  • 核心关联:继承构建类的层级关系,是Java实现多态机制的必要前置条件。

到此这篇关于Java面向对象继承、this与super关键字实例详解的文章就介绍到这了,更多相关Java this与super关键字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java去掉数字字符串开头的0三种方法(推荐)

    Java去掉数字字符串开头的0三种方法(推荐)

    下面小编就为大家带来一篇Java去掉数字字符串开头的0三种方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • mybatis返回类型map时如何将key大写转为小写

    mybatis返回类型map时如何将key大写转为小写

    这篇文章主要介绍了mybatis返回类型map时实现将key大写转为小写操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • java自动生成编号的实现(格式:yyMM+四位流水号)

    java自动生成编号的实现(格式:yyMM+四位流水号)

    这篇文章主要介绍了java自动生成编号的实现(格式:yyMM+四位流水号),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • IDEA提示`SQL dialect is not configured`的问题分析及解决方案

    IDEA提示`SQL dialect is not configured`的问题

    在Java开发中,尤其是使用IntelliJ IDEA或MyBatis等框架时,开发者常会遇到 SQL dialect is not configured 的警告或错误,这一问题不仅影响代码的高亮和智能提示功能,还可能导致表结构解析失败、语法校验失效等问题,需要的朋友可以参考下
    2025-06-06
  • Java实现文件上传的方法总结

    Java实现文件上传的方法总结

    这篇文章主要为大家介绍了三种Java实现文件上传的方法,文中的示例代码讲解详细,对我们的学习或工作有一定的借鉴价值,感兴趣的可以了解一下
    2023-04-04
  • Java实现动态日历效果

    Java实现动态日历效果

    这篇文章主要为大家详细介绍了Java实现动态日历效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 深入理解Spring事务的隔离级别

    深入理解Spring事务的隔离级别

    Spring 事务的隔离级别是一个重要的概念,它定义了事务之间的隔离程度,以防止并发问题(如脏读、不可重复读和幻读),本文给大家介绍Spring事务的隔离级别,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • java中初始化MediaRecorder的实现方法

    java中初始化MediaRecorder的实现方法

    这篇文章主要介绍了java中初始化MediaRecorder的实现方法的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • MyBatis中#{}和${}的区别详解

    MyBatis中#{}和${}的区别详解

    mybatis和ibatis总体来讲都差不多的。下面小编给大家探讨下mybatis中#{}和${}的区别,感兴趣的朋友一起学习吧
    2016-08-08
  • vue+springboot上传文件、图片、视频及回显到前端详解

    vue+springboot上传文件、图片、视频及回显到前端详解

    一般来说vue可以使用axios或者fetch等ajax库发送文件请求,而springboot则可以使用Spring MVC的方式来处理上传文件请求,下面这篇文章主要给大家介绍了关于vue+springboot上传文件、图片、视频及回显到前端的相关资料,需要的朋友可以参考下
    2023-04-04

最新评论