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()); // 猫猫吃老鼠小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧