当前位置: 首页 > news >正文

Java继承全攻略:从零基础到精通

步入大一下学期的 Java 学习,面向对象编程的核心特性逐渐深入,继承作为三大特性之一,不仅是代码复用的关键,更是学习后续多态、方法重写等知识的基础。刚接触继承时,总觉得知识点零散、关联内容繁杂,特意整理了这篇笔记,把继承本身以及所有配套必学知识点一次性讲透,适合和我一样的 Java 新手参考学习。

一、先搞懂:什么是继承?为什么要用继承?

在生活中,子女会继承父母的外貌、性格等特征,而 Java 中的继承,是子类继承父类的属性和方法,让子类无需重复编写代码,直接拥有父类的成员,同时还能扩展自己独有的功能。

1. 核心概念

  • 父类(超类 / 基类):被继承的类,存放多个类的公共属性和方法,是通用模板。
  • 子类(派生类):继承父类的类,拥有父类非私有成员,可新增专属内容。

2. 继承的作用

  • 减少代码冗余:抽取重复代码到父类,避免反复编写,提升编码效率。
  • 便于后期维护:修改父类代码,所有子类都会同步生效,降低维护成本。
  • 体现面向对象设计思想:实现类与类之间的逻辑关联,贴合现实世界的层级关系。

3. 继承的语法

Java 中使用extends关键字实现类的继承,语法格式如下:

class 子类名 extends 父类名 { // 子类独有属性 // 子类独有方法 }

注意:Java 的类只支持单继承,一个子类只能有一个直接父类,但可以多层继承(如 A 继承 B,B 继承 C),不支持多继承。

二、基础案例:快速理解继承

以生活中常见的「人类 - 学生类」为例,直观展示继承的使用:

1. 父类 Person(人类)

// 父类:抽取学生、老师的公共属性和方法 public class Person { // 公共属性 String name; int age; // 公共方法 public void eat() { System.out.println("人需要吃饭补充能量"); } public void sleep() { System.out.println("人需要睡觉休息"); } }

2. 子类 Student(学生类)

// 子类继承父类,拥有父类所有非私有成员 public class Student extends Person { // 子类独有属性:学号 String studentId; // 子类独有方法:学习 public void study() { System.out.println(name + "正在学习Java,年龄:" + age); } }

3. 测试类

public class TestExtends { public static void main(String[] args) { Student student = new Student(); // 赋值父类继承的属性 student.name = "小明"; student.age = 19; // 调用父类方法 student.eat(); student.sleep(); // 调用子类独有方法 student.study(); } }

运行结果

人需要吃饭补充能量 人需要睡觉休息 小明正在学习Java,年龄:19

可以看到,子类 Student 没有定义 name、age 属性和 eat、sleep 方法,却能直接使用,这就是继承的核心魅力。

三、继承核心关联知识点(必学!)

1. super 关键字:子类访问父类的钥匙

super 是继承中必不可少的关键字,专门用于子类中访问父类的成员,主要有三种用法:

  • super.成员变量:访问父类的属性(解决子类与父类属性重名问题)
  • super.成员方法():调用父类的方法
  • super():调用父类的构造方法,必须放在子类构造方法第一行

代码示例

public class Student extends Person { // 子类属性与父类重名 String name = "子类姓名"; public Student() { // 调用父类无参构造,默认隐藏,不写也会自动执行 super(); } public void showName() { // 访问父类name属性 System.out.println(super.name); // 访问子类name属性 System.out.println(this.name); } }

2. 方法重写(Override):子类优化父类方法

子类可以对父类中现有方法进行重新实现,满足子类自身需求,这就是方法重写。

重写规则
  • 方法名、参数列表、返回值类型必须和父类完全一致;
  • 子类重写方法的访问权限,不能低于父类方法的权限;
  • 使用@Override注解,可校验是否为正确重写。

代码示例

public class Student extends Person { // 重写父类eat方法 @Override public void eat() { System.out.println("学生要规律吃饭,才能专心学习"); } }

区分:重写是父子类之间的关系,重载是同一个类中方法名相同、参数列表不同的方法,切勿混淆!

3. 继承与构造方法

  • 子类所有构造方法,默认第一行都会隐藏 super (),先调用父类无参构造方法;
  • 如果父类没有无参构造,子类必须手动通过super(参数)调用父类有参构造,否则编译报错;
  • 构造方法不能被重写,只能通过 super 调用。

4. 访问修饰符与继承

Java 的四种访问修饰符,直接决定父类成员能否被子类访问,权限从高到低:

  1. public:所有类都能访问,子类可直接继承;
  2. protected:同包类、不同包子类均可访问,继承常用;
  3. 默认(无修饰符):仅同包类可访问;
  4. private:仅本类可访问,子类无法直接继承访问,需通过父类 public 方法间接调用。

5. Object 类:所有类的根父类

Java 中所有类,都默认直接或间接继承 Object 类,哪怕没有写extends Object。Object 类提供了很多通用方法,常用的有:

  • toString():返回对象的字符串表示,子类可重写自定义输出;
  • equals():判断两个对象是否相等,默认比较地址,重写后可比较内容;
  • hashCode():获取对象的哈希值。

6. final 关键字与继承

final 关键字会限制继承的使用,核心规则:

  • final类:无法被任何类继承;
  • final方法:子类不能重写该方法;
  • final变量:变为常量,赋值后不可修改。

7. 向上转型与向下转型(多态基础)

基于继承,Java 可以实现对象的转型,是学习多态的前提:

  • 向上转型:父类引用指向子类对象,自动转型(Person p = new Student());
  • 向下转型:父类引用转回子类对象,需要强制转换,需注意类型转换异常。

四、学习继承的易错点总结

  1. 父类 private 修饰的成员,子类无法直接访问,别误以为所有父类内容都能继承;
  2. Java 类只能单继承,多层继承是允许的,不要和接口多实现混淆;
  3. 方法重写要严格遵守规则,加@Override注解避免出错;
  4. super () 必须在子类构造方法第一行,不能和 this () 同时存在;
  5. 继承适用于「is-a」关系(学生是人),不符合逻辑不要强行使用。

五、学习感悟

作为大一 Java 学习者,刚接触继承时,总觉得语法和关联知识点又多又乱,但慢慢梳理后发现,继承是面向对象「抽取共性、保留个性」思想的完美体现。它不仅让我们的代码变得简洁整洁,更是学习后续多态、接口等核心知识的敲门砖。

http://www.jsqmd.com/news/795117/

相关文章:

  • 美国一件代发海外仓专业度测评 | 2026年仓储运营、订单时效与增值服务全维度解析 - 科技焦点
  • 技能驱动AI智能体架构解析:从工具调用到复杂任务编排
  • 港大开源 AI 交易员:大模型驱动的智能量化投资系统
  • Omlx:轻量级机器学习交换格式库
  • 2026年武汉企业GEO优化与短视频获客完全指南:五大服务商深度横评 - 优质企业观察收录
  • Codeg:企业级多智能体编码工作台,统一管理AI助手与远程协作
  • 你还在用传统MLOps工具链运维千亿参数模型?SITS 2026正式宣布LLM专属运维栈LMOps v2.1(仅限首批200家认证企业接入)
  • 2026年彩钢瓦选购指南,口碑好的供应商排名 - mypinpai
  • WeChatExporter:iOS微信聊天记录逆向工程与本地化备份技术实现
  • 2026年桂林五金模具与金属制品定制厂家对比评测 - 优质企业观察收录
  • Go语言实现AI对话接口聚合器:统一OpenAI兼容网关部署与配置指南
  • Datawhale 出品:VIBE 编程快速上手教程
  • 细聊惠州市玻镁板认证厂家,协航建材排第几? - mypinpai
  • 3步解锁PotPlayer双语字幕魔法:告别语言障碍的观影新体验
  • 2026年武汉GEO优化与短视频精准获客完全指南:5大服务商深度横评 - 优质企业观察收录
  • 金价即将变天?赣州人紧急抛售,福正美回收报价高出同行一截 - 福正美黄金回收
  • Pikachu 靶场全通关(2026 完整版)
  • 鸿蒙一气总论(四)
  • 好用的医药画册设计机构有哪些? - mypinpai
  • Instrukt:为本地大模型打造指令中心,实现自动化工作流
  • chatBox-v1.20.3可以用vxkex 扩展内核运行
  • 2026年武汉GEO优化与短视频代运营完全指南:B端精准获客方案深度评测 - 优质企业观察收录
  • 从哪些方面对钢结构厂房进行检测?
  • 实测揭秘佛山名表回收行业套路,五家头部机构深度对比测评 - 奢侈品回收测评
  • 第1篇|陌生项目快速上手:5个问题理清全局
  • AI编程助手技能库agent-skills:从增量实现到安全审计的实战指南
  • WebGL 驱动的 3D 高斯点云编辑器,浏览器里玩转 3D
  • StreamCap直播录制工具:一款覆盖40+平台的全能自动化录制方案
  • 为什么你的设计标注效率低下?Sketch MeaXure的5个颠覆性解决方案
  • 银泰百货卡回收技巧 - 团团收购物卡回收