亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

精通 Java 继承:核心概念、类型与实战示例

精通 Java 继承

深度探索 Java 继承 —— 理解其原理、真实案例,并学会如何应用它编写更清晰、可复用的代码。

继承是面向对象编程的基石,允许基于现有类创建新类。

派生类称为 子类(子类或派生类),被继承的类称为 父类(父类或基类)。extends 关键字建立这种关系。

class Animal { // 方法和字段 } class Dog extends Animal { // Dog 继承 Animal 的字段和方法 }

此处,Dog 继承 Animal 的所有成员 —— 子类获得父类功能。


示例 1:基础继承

class Animal { String name; public void eat() { System.out.println("I can eat"); } } class Dog extends Animal { public void display() { System.out.println("My name is " + name); } } class Main { public static void main(String[] args) { Dog labrador = new Dog(); labrador.name = "Rohu"; labrador.display(); labrador.eat(); } }

输出

My name is Rohu I can eat

本例中,Dog 继承了 Animal 的 name 和 eat(),因此 Dog 对象可直接访问它们。

精通 Java 继承:核心概念、类型与实战示例

is-a 关系

Java 继承体现 is-a 关系:子类是父类的特化形式。

这些自然层级证明了使用继承的合理性。


方法重写

当子类定义与父类同签名的方法时,子类方法重写父类版本,实现运行时多态。

示例 2:重写 eat()

class Animal { public void eat() { System.out.println("I can eat"); } } class Dog extends Animal { @Override public void eat() { System.out.println("I eat dog food"); } public void bark() { System.out.println("I can bark"); } } class Main { public static void main(String[] args) { Dog labrador = new Dog(); labrador.eat(); labrador.bark(); } }

输出

I eat dog food I can bark

对 labrador 调用 eat() 解析到 Dog 中重写的方法。

提示: @Override 注解虽非强制,但强烈推荐 —— 它让编译器检查是否真正重写了方法。


使用 super 访问父类

重写时,super 关键字可调用父类实现。

示例 3:在 eat() 中使用 super

class Animal { public void eat() { System.out.println("I can eat"); } } class Dog extends Animal { @Override public void eat() { super.eat(); System.out.println("I eat dog food"); } public void bark() { System.out.println("I can bark"); } } class Main { public static void main(String[] args) { Dog labrador = new Dog(); labrador.eat(); labrador.bark(); } }

输出

I can eat I eat dog food I can bark

此处 super.eat() 先调用 Animal 定义的方法,再执行子类逻辑。

同样,super 可调用父类构造器。


继承中的受保护成员

标记为 protected 的字段或方法,子类无论包位置均可访问。

示例 4:访问受保护成员

class Animal { protected String name; protected void display() { System.out.println("I am an animal."); } } class Dog extends Animal { public void getInfo() { System.out.println("My name is " + name); } } class Main { public static void main(String[] args) { Dog labrador = new Dog(); labrador.name = "Rocky"; labrador.display(); labrador.getInfo(); } }

输出

I am an animal. My name is Rocky

子类可自由读写受保护字段 name 并调用 display()。


为何使用继承?


继承的类型

Java 支持五种概念上的继承模型,各适用不同场景。

1. 单继承

一个类仅继承一个父类。

精通 Java 继承:核心概念、类型与实战示例

2. 多层继承

子类成为另一类的父类,形成链式结构。

精通 Java 继承:核心概念、类型与实战示例

3. 分层继承

多个子类继承自同一父类。

精通 Java 继承:核心概念、类型与实战示例

4. 多重继承

Java 不允许类继承多个类,但接口提供实现此模式的途径。

精通 Java 继承:核心概念、类型与实战示例

注意: 多重继承可通过接口实现;详见 Java implements 多重继承。


5. 混合继承

两种或以上继承类型的组合 —— 例如结合分层与多重继承。

精通 Java 继承:核心概念、类型与实战示例

java

  1. 掌握 C# 继承:概念、类型与实战代码完全指南
  2. C++ 继承完全指南:构建可复用的强大类层次
  3. C# 继承完全指南:基类、派生类、初始化与多重继承替代方案
  4. 深入理解 Java final 关键字:变量、方法与类的不可变性
  5. Java instanceof 运算符完全指南:用法、继承与接口检查
  6. 深入理解 Java 静态嵌套类:用法、差异与实战示例
  7. 精通 Java 匿名内部类:定义、语法与实战示例
  8. Java 单例模式详解:安全实现与使用指南
  9. 精通 Java 反射:运行时检查类、方法与字段
  10. 掌握 Java ObjectOutputStream:序列化、核心方法与实战示例
  11. 掌握 Java 泛型:构建可复用、类型安全的代码
  12. 掌握 Java 文件操作:java.io 包下的创建、读取、写入与删除