视频位置 TypeScript快速梳理_下篇 0:52:30

interface 与 抽象类的区别

  • 相同点:都能定义⼀个类的格式(定义类应遵循的契约)
  • 不相同:
    1️⃣ 接⼝:只能描述结构不能有任何实现代码,⼀个类可以实现多个接⼝。
    2️⃣ 抽象类:既可以包含抽象⽅法,也可以包含具体⽅法, ⼀个类只能继承⼀个抽象类。

⼀个类可以实现多个接⼝

// FlyInterface 接⼝(起飞接口)
interface FlyInterface {
    fly(): void;
}
// 定义 SwimInterface 接⼝(游泳接口)
interface SwimInterface {
    swim(): void;
}

//鸭子类实现:
// Duck 类实现了 FlyInterface 和 SwimInterface 两个接⼝
class Duck implements FlyInterface, SwimInterface {
    fly(): void {
        console.log('鸭⼦可以⻜');
    }
    swim(): void {
        console.log('鸭⼦可以游泳');
    }
}


// 创建⼀个 Duck 实例
const duck = new Duck();
duck.fly(); // 输出: 鸭⼦可以⻜
duck.swim(); // 输出: 鸭⼦可以游泳