请解释类的继承 (Inheritance) 的用法。如何使用 extends 关键字实现继承?

推荐答案

在 TypeScript 中,类的继承是通过 extends 关键字来实现的。通过继承,子类可以继承父类的属性和方法,并且可以在子类中添加新的属性和方法,或者重写父类的方法。

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

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

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

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

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

在这个例子中,Dog 类继承了 Animal 类,因此 Dog 类的实例可以访问 Animal 类的 move 方法,同时也可以定义自己的 bark 方法。

本题详细解读

1. extends 关键字的作用

extends 关键字用于创建一个类作为另一个类的子类。子类继承了父类的所有属性和方法,并且可以在此基础上进行扩展或修改。

2. 继承的语法

  • ChildClass 是子类,ParentClass 是父类。
  • 子类可以访问父类的所有非私有(private)属性和方法。

3. 方法重写

子类可以重写父类的方法,即在子类中定义一个与父类同名的方法,这样子类的实例在调用该方法时会使用子类的实现。

在这个例子中,Cat 类重写了 Animal 类的 move 方法,使得 Cat 类的实例在调用 move 方法时,默认移动距离为 5 米。

4. 调用父类的方法

在子类中,可以使用 super 关键字来调用父类的方法或构造函数。

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

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

在这个例子中,Bird 类的 fly 方法调用了父类 Animalmove 方法。

5. 继承的限制

  • TypeScript 不支持多重继承,即一个类不能同时继承多个类。
  • 如果父类有构造函数,子类必须在构造函数中调用 super(),否则会报错。

通过 extends 关键字,TypeScript 提供了强大的继承机制,使得代码可以更好地组织和复用。

纠错
反馈