美文网首页
99. Java 继承(Inheritance)

99. Java 继承(Inheritance)

作者: Cache技术分享 | 来源:发表于2025-06-07 09:11 被阅读0次

99. Java 继承(Inheritance)

1. 什么是继承?

Java 语言中,继承是一种允许类从其他类派生并复用其字段和方法的机制。

📌 继承的基本概念

  • 子类(Subclass:从另一个类派生的类(又称派生类、扩展类)。
  • 超类(Superclass:被继承的类(又称基类或父类)。
  • 单继承(Single InheritanceJava 仅支持单继承,即每个类只能直接继承一个超类。
  • Object:所有类的祖先,未指定父类时,默认继承自 Object

继承的好处:

  • 代码复用 ✅ 避免重复编写相同代码。
  • 层次结构 🚀 建立逻辑清晰的类体系。
  • 可扩展性 🎯 通过子类扩展父类功能。

2. 继承示例

🎭Bicycle(自行车)类

public class Bicycle {
    // Bicycle 类包含三个字段
    public int cadence;
    public int gear;
    public int speed;

    // 构造方法
    public Bicycle(int startCadence, int startSpeed, int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    }

    // 调整踏频
    public void setCadence(int newValue) {
        cadence = newValue;
    }

    // 调整档位
    public void setGear(int newValue) {
        gear = newValue;
    }

    // 减速
    public void applyBrake(int decrement) {
        speed -= decrement;
    }

    // 加速
    public void speedUp(int increment) {
        speed += increment;
    }
}

🚵MountainBike(山地自行车)类

MountainBike 继承 Bicycle,并增加了 seatHeight 字段和 setHeight() 方法。

public class MountainBike extends Bicycle {
    // 新增字段:座椅高度
    public int seatHeight;

    // 构造方法,调用父类构造方法
    public MountainBike(int startHeight, int startCadence, int startSpeed, int startGear) {
        super(startCadence, startSpeed, startGear);
        seatHeight = startHeight;
    }

    // 设置座椅高度
    public void setHeight(int newValue) {
        seatHeight = newValue;
    }
}

3. 继承的关键点

🔹 1. 使用 super 关键字

  • super 关键字用于调用父类的构造方法或方法。
  • 在子类构造方法中,super(...) 必须是第一行。
public MountainBike(int startHeight, int startCadence, int startSpeed, int startGear) {
    super(startCadence, startSpeed, startGear); // 调用父类构造方法
    seatHeight = startHeight;
}

🔹 2. 方法重写(Overriding)

  • 子类可以重写(override)父类的方法。
  • 使用 @Override 注解可以避免拼写错误。
@Override
public void speedUp(int increment) {
    speed += increment * 2; // 速度加倍
}

🔹 3. 访问修饰符的影响

修饰符 同一类 同一包 子类 其他包
public
protected
default(无修饰符) ❌(同包子类可访问)
private

🔹 4. final 关键字

  • final 修饰类:不能被继承。
  • final 修饰方法:不能被子类重写。
final class RoadBike extends Bicycle { }

4. 继承的实际应用

🌟 示例:使用继承创建不同类型的车辆

// 父类:Vehicle(交通工具)
class Vehicle {
    public void move() {
        System.out.println("交通工具正在移动...");
    }
}

// 子类:Car(汽车)
class Car extends Vehicle {
    @Override
    public void move() {
        System.out.println("汽车正在行驶...");
    }
}

// 子类:Bike(自行车)
class Bike extends Vehicle {
    @Override
    public void move() {
        System.out.println("自行车正在骑行...");
    }
}

public class TestInheritance {
    public static void main(String[] args) {
        Vehicle v1 = new Car();
        Vehicle v2 = new Bike();
        
        v1.move(); // 输出:汽车正在行驶...
        v2.move(); // 输出:自行车正在骑行...
    }
}

5. 总结

继承让代码更清晰、可复用性更高。 🚀 使用 super 关键字调用父类构造方法或方法。 🎯 方法重写可以定制子类行为,但要注意访问修饰符的作用。final 关键字可以防止继承和重写,合理使用。

通过继承,我们可以构建更有组织、可扩展的 Java 应用程序,减少代码重复,让代码更易于维护!💡

相关文章

  • Java学习笔记------继承

    http://www.runoob.com/java/java-inheritance.html 概念: 继承就是...

  • java基础系列02--面向对象

    java面向对象 封装(encapsulation) 继承(inheritance) 多态(polymorphis...

  • 什么是继承

    什么是继承 翻译自ORACLE Java Tutorials –What Is Inheritance? 不同种类...

  • Kotlin For Android 笔记(三)

    1、Inheritance(继承) 使用 @JvmOverloads 可以极大的简化构造函数的模板代码Java 版...

  • java系列5:继承(inheritance)

    解决了代码的重用问题。 一、继承 继承是利用现有的类创建新类的过程,现有的类称作基类(base class,父类)...

  • Java 中的继承 (inheritance)

    Inheritance 是 OOP 的重要机制 Java 中的继承是通过在原有类的基础之上扩展新的类来实现的。 上...

  • Inheritance (继承)

    A class caninheritmethods, properties, and other characte...

  • 继承(Inheritance)

    值类型(枚举 结构体)不支持继承,只有类支持继承 没有父类的类,称为:基类 Swift没有像OC,Java那样的规...

  • 继承-Inheritance

    继承是面向对象编程的核心概念之一,它允许一个对象得到另一个对象的属性和方法,这使得削减代码和重用代码都变得简单。我...

  • 继承(Inheritance)

    当子类继承基类时,子类包含了父基类所有数据及操作的定义。 在 C++ 实践中,继承主要用于两种场合: 实现继承:子...

网友评论

      本文标题:99. Java 继承(Inheritance)

      本文链接:https://www.haomeiwen.com/subject/bpubwjtx.html