S06L09 – 继承 02 – Java 中的继承

精通 Java 继承:以 Vehicles 示例为例 #java #inheritance #OOP #coding #tutorial

备注: 本文章由 AI 生成。

目录

1. 介绍 ……………………………………. 第 1 页
2. 理解 Java 继承 …………………………… 第 3 页
    2.1 面向对象概念与继承基础
    2.2 继承的优缺点
3. Vehicles 层次结构 ……………………….. 第 7 页
    3.1 基本 Vehicle class 概览
    3.2 派生类: Truck, Car, and Bike
    3.3 比较表:独特与共有特性
4. 代码解析与解释 …………………………. 第 11 页
    4.1 从 Vehicle class 继承
    4.2 带有解释的详细代码示例
    4.3 预期输出
5. 结论与进一步阅读 ……………………….. 第 17 页


1. 介绍

继承是 Java 面向对象编程 (OOP) 的基石。它允许开发者创建一个新的 class (子类),以重用、扩展和修改在另一个 class (父类) 中定义的行为。
在本指南中,我们将通过基于车辆的现实示例演示如何实现继承,展示如何重用共有属性以及如何引入专用特性。

关键要点:
• 在 parent class 中一次性组织共有属性和行为。
• 根据特定需求,在 child classes 中扩展或重写功能。
• 提高相似对象之间的代码重用性和可维护性。

下方为各类车辆关键数据范围及属性的表格表示:

比较表:车辆特性

特性 Vehicle (Base) Car Truck Bike
Engine 是 (if public)
Wheel
Seat N/A
Fuel Tank N/A
Lights N/A
Steering N/A
Music System N/A Optional
Air Conditioner N/A Optional N/A
Entertainment N/A N/A N/A
Additional N/A Fridge (*) Container Handle

(*) 在某些高级配置中,Car 可能提供迷你冰箱。

何时使用继承?
• 在 parent class 中一次性组织共有属性和行为。
• 根据特定需求,在 child classes 中扩展或重写功能。
• 提高相似对象之间的代码重用性和可维护性。


2. 理解 Java 继承

2.1 面向对象概念与继承基础

继承使得一个 class 能够获得另一个 class 的属性和方法。
在我们的示例中,Vehicle class 定义了在所有车辆类型中共享的共有属性,如 engine、wheel、seats、fuel tank 和 lights。

2.2 继承的优缺点

优点:
– 代码重用和组织
– 简化维护
– 共有行为的逻辑分组

缺点:
– 如果管理不当,可能导致代码耦合过紧
– 过度使用可能导致复杂的 class 层次结构


3. Vehicles 层次结构

3.1 基本 Vehicle class 概览

Vehicle class 作为父 class,包含了每个车辆应具备的默认属性(例如,engine type, wheel)。所有扩展的类—Truck, Car, and Bike—都会自动获取这些属性。

3.2 派生类: Truck, Car, and Bike

• Truck 和 Car classes 继承自 Vehicle class,并添加或修改各自的属性,例如 trucks 的 container 和 cars 的 entertainment systems。
• 虽然 Bike class 相对简单,但它也扩展了 Vehicle,从而可以访问基本属性(例如 engine),同时引入了其独特的属性:handle.

3.3 Vehicles 继承层次结构示意图


4. 代码解析与解释

4.1 从 Vehicle class 继承

下面是一个示例,展示了 Bike class 如何扩展 Vehicle class 的共有属性。注意,最初 Bike class 中的 handle variable 被声明为 private,后来改为 public 以便在我们的演示中实现直接访问。

4.2 带有解释的详细代码示例

4.3 逐步代码解释及预期输出

步骤 1: 对象创建
• 使用以下代码实例化一个 Bike object:
    Bike bike = new Bike();

步骤 2: 访问属性
• Bike class 自动继承了来自 Vehicle class 的 public properties.
    System.out.println(bike.handle);
→ 输出: “Short Handle”
• 访问继承而来的 engine 属性(如果 Vehicle 中的属性是 public):
    System.out.println(bike.engine);
→ 输出: “petrol”

解释:
– Bike class 展示了 extends 的概念,即继承了 Vehicle class 的属性。
– 通过将 handle property 从 private 改为 public,我们确保了在引用 Bike instance 时可以直接使用该属性。
– 输出结果确认了 Bike 不仅具有其特定的属性(handle),还能访问继承而来的属性如 engine.


5. 结论与进一步阅读

总之,Java 继承通过允许在 base class 中定义共有属性和行为,然后由派生 classes 重用或扩展这些属性,从而简化了代码结构。通过车辆示例,我们看到了 Bike class 如何扩展 Vehicle class 以继承诸如 engine 属性,同时定义其独特的属性如 handle。这一模型适用于许多现实编程场景,尤其是在创建相关对象层次结构时。

关键要点:
– 继承促进了代码重用和逻辑组织。
– 修改属性访问权限(使用 public, protected, 或 private)在继承和封装中起着关键作用。
– 一个结构化的 class 层次结构可以简化维护并根据需要扩展功能。

对于初学者及具备基本 Java 知识的开发者来说,通过诸如车辆这样的实际示例来探究继承,可以显著强化核心 OOP 原则。


感谢您阅读这篇电子书风格的文章。我们希望它能为您提供对 Java 继承清晰简明的理解。祝您编码愉快!







分享你的喜爱