遗产

Linda Hamilton
Linda Hamilton原创
2025-01-19 18:08:10196浏览

Java继承机制详解:构建面向对象程序的基石

Java中的继承机制允许一个对象继承父对象的全部属性和行为,是面向对象编程 (OOPs) 的核心概念。 通过继承,我们可以创建基于现有类的全新类,复用父类的方法和字段,并在此基础上添加新的方法和字段。

什么是继承?

Java继承机制允许一个类(子类或派生类)继承另一个类(超类或父类)的属性和方法。 子类可以访问超类的成员(字段和方法),强制执行复用规则,并促进类的层次结构。 继承体现了“IS-A”关系,也称为父子关系。

为什么要使用Java继承?

  • 代码复用: 继承显着提高代码复用性,避免重复编写相同的功能代码。
  • 方法重写 (实现运行时多态性): (待补充)

继承相关的术语

  • 类: 具有共同属性的对象集合,是创建对象的模板或蓝图。
  • 子类/子类: 继承其他类的类,也称为派生类、扩展类或子类。
  • 超类/父类: 子类继承特征的类,也称为基类或父类。
  • 复用性: 在创建新类时复用现有类字段和方法的机制。

Java继承的语法

<code class="language-java">class 子类名称 extends 超类名称 {
    // 方法和字段
}</code>

extends 关键字表示创建一个从现有类派生的新类。 “extends” 的含义是扩展功能。 在Java术语中,被继承的类称为父类或超类,新类称为子类或子类。

遗产

上图显示,Programmer 是子类,Employee 是超类。两者之间的关系是 Programmer IS-A Employee,表示程序员是一种员工。

示例:Programmer.java

<code class="language-java">class Employee {
    float salary = 40000;
}

class Programmer extends Employee {
    int bonus = 10000;

    public static void main(String args[]) {
        Programmer p = new Programmer();
        System.out.println("程序员薪资:" + p.salary);
        System.out.println("程序员奖金:" + p.bonus);
    }
}</code>

Java继承的类型

根据类的继承关系,Java继承主要分为三种类型:单继承、多层继承和层次继承。

遗产

注意:Java不支持通过类实现多继承。

当一个类继承多个类时,称为多继承。例如:Java中的多继承

遗产

单继承示例

当一个类继承另一个类时,称为单继承。在下面的示例中,Dog 类继承了 Animal 类,因此是单继承。

Test遗产.java

<code class="language-java">class Animal {
    void eat() {
        System.out.println("正在吃...");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("汪汪...");
    }
}

class Test遗产 {
    public static void main(String args[]) {
        Dog d = new Dog();
        d.bark();
        d.eat();
    }
}</code>

多层继承示例

当存在继承链时,称为多层继承。在下面的示例中,BabyDog 类继承了 Dog 类,而 Dog 类又继承了 Animal 类,因此是多层继承。

Test遗产2.java

<code class="language-java">class 子类名称 extends 超类名称 {
    // 方法和字段
}</code>

层次继承示例

当两个或多个类继承单个类时,称为层次继承。在下面的示例中,DogCat 类都继承了 Animal 类,因此是层次继承。

Test遗产3.java

<code class="language-java">class Employee {
    float salary = 40000;
}

class Programmer extends Employee {
    int bonus = 10000;

    public static void main(String args[]) {
        Programmer p = new Programmer();
        System.out.println("程序员薪资:" + p.salary);
        System.out.println("程序员奖金:" + p.bonus);
    }
}</code>

为什么Java不支持多继承?(待补充)

为了降低复杂度并简化语言,Java 不支持通过类实现多继承。

方法重写与方法重载

  • 方法重写: 子类提供对父类中已声明方法的特定实现。
  • 方法重载: 在同一个类中,方法名相同,但参数数量或类型不同。

final 关键字的作用

final 关键字用于防止方法重写和类扩展:

  • final 字段:不能重新赋值。
  • final 方法:不能被重写。
  • final 类:不能被继承。

参考链接:https://www.php.cn/link/9b4192ee086949047cfc64d86d895c2e

以上是遗产的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn