实现规则
- 接口:类可以实现多个接口,接口只是定义成员的形状,不包含实现。
示例:
interface Printable {
print(): void;
}
class Book implements Printable {
print() {
console.log('Printing book...');
}
}
- 扩展抽象类:一个类只能继承一个抽象类,抽象类可以包含部分实现。
示例:
abstract class Animal {
abstract makeSound(): void;
move() {
console.log('Moving...');
}
}
class Dog extends Animal {
makeSound() {
console.log('Woof!');
}
}
成员类型
- 接口:可定义属性、方法签名,但不能包含属性的初始值,也不能定义构造函数。
- 扩展抽象类:可以包含属性(可初始化)、抽象方法、具体方法以及构造函数。
使用场景
- 接口:常用于定义对象的形状,或对类的公共部分进行抽象,适用于需要多重实现的场景,如一个类需要同时具备多种行为。
- 扩展抽象类:适用于有共同属性和行为,且部分实现可以复用的情况,用于建立类的继承体系,强调类之间的“is - a”关系。