typeScript--[类的多态和抽象类、抽象方法]

一.类的多态

多态就是父类定义一个方法不去实现,让继承他的子类去实现,每一个自雷有不同的表现

class Animal {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
  eat(): void {
    console.log("父级定义一个吃的方法不去实现,让子级去实现");
  }
}
class Dog extends Animal {
  constructor(name: string) {
    super(name);
  }
  eat(): void {
    console.log(this.name + "吃狗狼");
  }
}
class Cat extends Animal {
  constructor(name: string) {
    super(name)
  }
  eat(): void {
      console.log(this.name + "吃猫粮")
  }
}
var d = new Dog("狗")
var c = new Cat("猫")
d.eat()
c.eat() //子类去实现不同的操作 这就是多态

二.抽象类,抽象方法

  • 以abstract开头的类是抽象类
  • 抽象类和其他类区别不大,只是不能用来创建对象
  • 抽象类就是专门用来被继承的类
  • 抽象类中可以添加抽象方法抽象方法只能定义抽象类中,子类必须对抽象方法进行重写
abstract class Animal {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
  //抽象方法,,没有方法体
  //抽象方法只能定义抽象类中,子类必须对抽象方法进行重写
  abstract eat(): void;
}

class Dog extends Animal {
  eat() {
    console.log("必须重写say方法,不重写报错");
  }
}

你可能感兴趣的:(typeScript,typescript)