//! 类 类型:类的类型能够通过接口来实现
(() => {
//? 定义一个接口
interface IFly {
//* 该办法没有任何的实现(什么都没有)fly(): any;}
//? 定义一个类。这个类的类型上下面定义的接口 (实际上,IFly 束缚了以后的这个 Person 的类)
class Person implements IFly {
//? 实现接口中的办法
fly() {console.log("看看我");
}
}
//? 实例化对象
const person = new Person();
person.fly();
interface ISwim {swim(): any;
}
//todo 定义一个类,这个类的类型就是 IFly 和 ISwim(以后这个类能够实现多个接口,一个类能够被多个接口进行束缚)class Person2 implements IFly, ISwim {fly() {console.log("看看我, 我是第二个");
}
swim() {console.log("看看我 我是第二个");
}
}
const person2 = new Person2();
person2.fly();
person2.swim();
//! 类能够通过接口的形式,来定义以后这个类的类型
//! 类能够实现一个接口,类也能够实现多个接口,要留神,接口中的内容都要真正的实现
//! 接口能够继承其他人的多个接口
// 定义了一个接口,并且继承了下面的接口
interface IWan extends Person2, Person {}
// 定义一个类,间接实现 IFly 和 ISwim
class Person3 implements IWan {fly() {console.log("看看我, 我是 3 个");
}
swim() {console.log("看看我 我是第 3 个");
}
}
const person3 = new Person3();
person3.fly();
person3.swim();
//! 接口和接口之间叫继承(应用的是 extends)//! 类和接口之间叫实现(应用的是 implements)})();