抽象方法是定义在抽象类当中的,和抽象类的基本思路一样,都是用于被继承的,但是抽象方法里面不能写具体代码只能定义,而且抽象方法必须在子类中实现
//
abstract class Aniaml {name: stringconstructor(name: string) {this.name = name}sayHelly() {console.log('hello')}abstract sayName():void}class Dog extends Aniaml {sayName() { //这里不去重写实现则会报错console.log('汪汪汪')}}let dog = new Dog('小狗')dog.sayName()
抽象方法必须指定这个抽象方法的返回类型,而且实现的方法返回的数据如果不是viod,则必须和这个抽象方法指定的返回类型一致。如果方法不返回,则必须指定:void
abstract class Aniaml {name: stringconstructor(name: string) {this.name = name}sayHelly() {console.log('hello')}abstract sayName():number //指定返回类型为数字}class Dog extends Aniaml {sayName() {console.log('汪汪汪')return 100 //抽象方法指定返回数字,则这里只能返回数字}}let dog = new Dog('小狗')dog.sayName()
如果不返回则必须指定void:
abstract class Aniaml {name: stringconstructor(name: string) {this.name = name}sayHelly() {console.log('hello')}abstract sayName():void //指定void}class Dog extends Aniaml {sayName() {console.log('汪汪汪') //只执行代码,不返回数据}}let dog = new Dog('小狗')dog.sayName()

