JavaScript 使用 extends 继承其他类

在现代JavaScript开发中,面向对象编程是一种非常重要的思想。ES6引入了class关键字来定义类,使得JavaScript的面向对象编程变得更加直观和强大。类的继承是面向对象编程中的一个重要概念,它允许我们创建一个基类,并基于这个基类创建派生类。通过使用extends关键字,我们可以实现类的继承。

创建基类

首先,我们需要定义一个基类作为所有派生类的基础。在这个例子中,我们将创建一个名为Person的基类。

-- -------------------- ---- -------
----- ------ -
    ----------------- ---- -
        --------- - -----
        -------- - ----
    -

    ---------- -
        ------------------- -- ---- -- ------------ --- - -- ----------- ----- -------
    -
-

这里,我们定义了一个构造函数constructor用于初始化对象的属性。同时,我们也定义了一个方法sayHello(),该方法用于输出一条欢迎消息。

使用 extends 关键字创建派生类

一旦我们有了一个基类,就可以使用extends关键字创建一个派生类。派生类可以继承基类的所有属性和方法,并且还可以添加自己的属性和方法。

定义派生类

接下来,我们创建一个派生类Student,它继承自Person类。

-- -------------------- ---- -------
----- ------- ------- ------ -
    ----------------- ---- ------ -
        ----------- ----- -- ---------
        ---------- - ------
    -

    ------- -
        ------------------------- -- -------- -- ----- -----------------
    -
-

在上面的例子中,我们通过super(name, age)调用了基类Person的构造函数,从而初始化了nameage这两个属性。然后,我们在Student类中添加了一个新的属性grade以及一个新的方法study()

实例化派生类并调用方法

现在,我们可以创建一个Student类的实例,并调用其方法:

从上面的代码可以看出,派生类不仅可以访问到基类的方法,还可以拥有自己的方法和属性。

覆盖基类方法

有时候,我们可能需要覆盖基类的方法,以便根据派生类的具体情况进行调整或扩展。这可以通过简单地在派生类中重新定义同名方法来实现。

覆盖基类方法

假设我们希望在Student类中对sayHello方法进行一些修改,使其更加个性化。

-- -------------------- ---- -------
----- ------- ------- ------ -
    ----------------- ---- ------ -
        ----------- -----
        ---------- - ------
    -

    ---------- -
        ---------------- --- - ------- ----- ------------- ----------- ----- ---- -------- -- ----- -----------------
    -

    ------- -
        ------------------------- -- -------- -- ----- -----------------
    -
-

在这个版本的Student类中,我们重写了sayHello方法,让它包含了学生的年级信息,这样可以使输出的信息更加具体和详细。

测试覆盖后的效果

通过以上步骤,我们展示了如何在JavaScript中使用extends关键字实现类的继承,以及如何通过覆盖基类方法来满足特定需求。这对于构建复杂的应用程序和库来说是非常有用的工具。

纠错
反馈