在TypeScript中,扩展
(extends)和实现
(implements)是两种常见的用于类与接口的关系描述方式,它们在功能和用途上有明显的区别。
扩展(Extends)
功能:
扩展是面向对象编程中的一种基础概念,主要用于类的继承。通过使用extends
关键字,一个类可以继承另一个类的属性和方法。这样,子类除了可以有自己特有的成员外,还能复用父类的功能。
示例:
typescriptclass 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
关键字用于类和接口的关系。当一个类实现一个接口时,它必须实现该接口声明的所有方法和属性。接口只定义了成员的结构,而不具体实现,具体的实现需要在实现接口的类中完成。
示例:
typescriptinterface 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
接口,所以它必须具体实现breathe
和sleep
这两个方法。
总结
- 扩展是用于类与类之间的继承关系,子类继承父类的属性和方法。
- 实现是用于类与接口之间的契约关系,类必须实现接口中声明的所有属性和方法。
这两者都是TypeScript中非常重要的面向对象的特性,帮助开发者写出结构清晰、易于管理的代码。
2024年8月3日 16:33 回复