乐闻世界logo
搜索文章和话题

TypeScript中扩展和实现的区别?

1 个月前提问
1 个月前修改
浏览次数22

1个答案

1

在TypeScript中,扩展(extends)和实现(implements)是两种常见的用于类与接口的关系描述方式,它们在功能和用途上有明显的区别。

扩展(Extends)

功能: 扩展是面向对象编程中的一种基础概念,主要用于类的继承。通过使用extends关键字,一个类可以继承另一个类的属性和方法。这样,子类除了可以有自己特有的成员外,还能复用父类的功能。

示例:

typescript
class Animal { breathe() { console.log("Breathing..."); } } class Dog extends Animal { bark() { console.log("Woof! Woof!"); } } const myDog = new Dog(); myDog.breathe(); // 继承自Animal类 myDog.bark(); // Dog类自己的方法

在这个例子中,Dog类扩展了Animal类,这意味着Dog类的实例可以使用Animal类中定义的breathe方法。

实现(Implements)

功能implements关键字用于类和接口的关系。当一个类实现一个接口时,它必须实现该接口声明的所有方法和属性。接口只定义了成员的结构,而不具体实现,具体的实现需要在实现接口的类中完成。

示例:

typescript
interface IAnimal { breathe(): void; sleep(): void; } class Cat implements IAnimal { breathe() { console.log("Cat breathing..."); } sleep() { console.log("Cat sleeping..."); } } const myCat = new Cat(); myCat.breathe(); myCat.sleep();

在这个例子中,Cat类实现了IAnimal接口,所以它必须具体实现breathesleep这两个方法。

总结

  • 扩展是用于类与类之间的继承关系,子类继承父类的属性和方法。
  • 实现是用于类与接口之间的契约关系,类必须实现接口中声明的所有属性和方法。

这两者都是TypeScript中非常重要的面向对象的特性,帮助开发者写出结构清晰、易于管理的代码。

2024年8月3日 16:33 回复

你的答案