抽象方法是定义在抽象类当中的,和抽象类的基本思路一样,都是用于被继承的,但是抽象方法里面不能写具体代码只能定义,而且抽象方法必须在子类中实现
    //

    1. abstract class Aniaml {
    2. name: string
    3. constructor(name: string) {
    4. this.name = name
    5. }
    6. sayHelly() {
    7. console.log('hello')
    8. }
    9. abstract sayName():void
    10. }
    11. class Dog extends Aniaml {
    12. sayName() { //这里不去重写实现则会报错
    13. console.log('汪汪汪')
    14. }
    15. }
    16. let dog = new Dog('小狗')
    17. dog.sayName()

    抽象方法必须指定这个抽象方法的返回类型,而且实现的方法返回的数据如果不是viod,则必须和这个抽象方法指定的返回类型一致。如果方法不返回,则必须指定:void

    1. abstract class Aniaml {
    2. name: string
    3. constructor(name: string) {
    4. this.name = name
    5. }
    6. sayHelly() {
    7. console.log('hello')
    8. }
    9. abstract sayName():number //指定返回类型为数字
    10. }
    11. class Dog extends Aniaml {
    12. sayName() {
    13. console.log('汪汪汪')
    14. return 100 //抽象方法指定返回数字,则这里只能返回数字
    15. }
    16. }
    17. let dog = new Dog('小狗')
    18. dog.sayName()

    如果不返回则必须指定void:

    1. abstract class Aniaml {
    2. name: string
    3. constructor(name: string) {
    4. this.name = name
    5. }
    6. sayHelly() {
    7. console.log('hello')
    8. }
    9. abstract sayName():void //指定void
    10. }
    11. class Dog extends Aniaml {
    12. sayName() {
    13. console.log('汪汪汪') //只执行代码,不返回数据
    14. }
    15. }
    16. let dog = new Dog('小狗')
    17. dog.sayName()

    image.png