多态属于继承,是继承的一种延续
在父类内部有一个公用方法,但是不知道具体做什么,由多个子类继承同一个方法,实现不同效果
这个公用方法也叫方法的重写
class Animall{
name:string;
constructor(name:string){
this.name = name
}
eat():void{
}
}
class Dog extends Animall{
constructor(name : string){
super(name)
}
eat(): void {
console.log( `${this.name}吃骨头`)
}
}
class Cat extends Animall{
constructor(name : string){
super(name)
}
eat(): void {
console.log( `${this.name}吃老鼠`)
}
}
抽象类多态(abstract)
定义抽象类,抽象类的抽象方法在子类继承的时候必须实现基类的抽象方法
若抽象类定义的抽象方法,子类没有使用基类的抽象方法,就会报错
abstract class Animall{
name:string;
constructor(name:string){
this.name = name
}
abstract eat():void{
}
}
class Dog extends Animall{
constructor(name : string){
super(name)
}
eat(): void {
console.log( `${this.name}吃骨头`)
}
}
class Cat extends Animall{
constructor(name : string){
super(name)
}
eat(): void {
console.log( `${this.name}吃老鼠`)
}
}