举例子描述TypeScript中的方法重写 ?

在TypeScript中,方法重写(Method Overriding)是面向对象编程中的一个概念,允许在子类中定义一个与父类相同名称和签名的方法,以提供特定于子类的实现。这使得子类可以根据需要改变或扩展继承自父类的行为。

以下是一个简单的TypeScript示例,演示了如何在子类中重写父类的方法:

父类定义

class Animal {
    move(distanceInMeters: number = 0) {
        console.log(`Animal moved ${distanceInMeters}m.`);
    }
}

子类重写方法

class Dog extends Animal {
    // 重写父类的move方法
    move(distanceInMeters: number = 5) {
        console.log("Dog is running...");
        super.move(distanceInMeters); // 调用父类的move方法
    }
}

在这个例子中,Dog类继承自Animal类,并重写了Animal类的move方法。在Dog类的move方法中,首先输出一条特定于Dog的消息,然后通过super.move(distanceInMeters)调用父类的move方法来复用父类的行为。

使用方法重写

let dog = new Dog();
dog.move(); // 输出: Dog is running... Animal moved 5m.

创建一个Dog类的实例并调用它的move方法时,会执行重写后的版本,显示Dog类特有的行为,然后调用并显示父类Animal的行为。

注意事项

  • 方法重写允许子类改变或扩展继承自父类的行为。
  • 使用super关键字可以调用父类的方法,这在需要保留父类行为的同时扩展功能时非常有用。
  • 方法重写时,子类方法的签名应与父类方法完全匹配,包括参数类型和返回类型。
  • 在TypeScript中,还可以通过接口实现多态性,这是另一种在不同类之间共享相同方法签名的方式。

方法重写是TypeScript(以及其他面向对象编程语言)中实现代码复用和行为多态性的重要特性之一。

发表评论

后才能评论