1. (function () {
  2. /*
  3. 以abstract开头的类是抽象类
  4. 抽象类和其它类区别不大,只是不能用来创建对象
  5. 抽象类就是专门用来被继承的类
  6. 抽象类中可以添加抽象方法
  7. */
  8. abstract class Animal{
  9. name: string;
  10. constructor(name: string) {
  11. this.name = name;
  12. }
  13. /*
  14. 定义一个抽象方法
  15. 抽象方法使用abstract开头,没有方法体
  16. 抽象方法只能定义在抽象类中,并且子类必须对抽象方法进行重写
  17. */
  18. abstract sayHello(): void;
  19. }
  20. class Dog extends Animal{
  21. sayHello() {
  22. console.log('汪汪汪');
  23. }
  24. }
  25. class Cat extends Animal{
  26. // 必须重写sayHello方法
  27. }
  28. const dog = new Dog('旺财')
  29. dog.sayHello();
  30. let an = new Animal('蛇')
  31. })()

错误截图

image.pngimage.png