Skip to content

多态抽象

多态:父类定义一个方法不去实现 让继承的子类去实现 每一个子类有不同的表现

多态属于继承

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+'吃老鼠'
 }
}

抽象 它是提供其他类继承的基类 不能直接被实例化

用abstract关键字定义抽象类和方法 抽象类中的抽象方法不包含具体实现并且必须在派生类中实现

abstract 抽象方法只能放在抽象里面

抽象类和抽象方法定义标准

Animal要求他的子类必须包含eat方法

abstract class Animal{
    public name:string;
    constructor(name:string){
      this.name=name;
    }
    abstract eat():any;
}
class Dog extends Animal{
    constructor(name:any){
        super(name)
    }
    //抽象类子类必须实现抽象类里面的抽象方法
    eat(){
      console.log('eat')
    }
}
var d=new Dog('catt');
d.eat()