ts多态 抽象方法
dearweb 发布:2021-07-25 15:51:43阅读:多态继承,每一个继承它的子类去实现,每一个子类的表现不一样
多态继承
// 多态 属于继承的一个表现 class Animal { name: string constructor(name: string) { this.name = name } eat() { console.log('吃的方法') } } class Dog extends Animal { constructor(name: string) { super(name) } eat() { return this.name + '吃粑粑' } } class Cat extends Animal { constructor(name: string) { super(name) } eat() { return this.name + '吃鱼' } } let D= new Dog('xiaogou') console.log(D.eat()); // xiaogou吃粑粑
抽象方法和抽象类
typescript 中的抽象类,它是提供其它类继承的基类,不能直接被实例化。用abstract关键字定义抽象类和抽象方法,抽象中的抽象方法不包含具体实现并且必须在派生类中实现,abstract抽象方法只能放在抽象类里面。
// 主要用于提供基类,不能直接使用 abstract class Animal { public name: string constructor(name: string) { this.name = name } //抽象方法在子类里面必须实现, abstract eat(): any //其他方法在子类里面可以不用实现, run() { } } // 抽象类错误的引用写法 // let P = new Animal() 不能直接被引用 class Dog extends Animal { constructor(name: any) { super(name) } // 抽象类的子类必须执行抽象类里面的方法 eat() { return `${this.name}吃老鼠` } } let D = new Dog('猫猫') console.log(D.eat()); // 猫猫吃老鼠
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧