admin管理员组文章数量:1636922
当我们创建了一个父类Animal和子类Dog的时候,我们更多的是希望通过new 子类来创建对象,而不是直接通过父类去创建对象。
一、使用abstract创建抽象类
以abstract开头的类就是抽象类:
abstract class 类名 { }
抽象类和其他类的区别不大,只是不能用来创建对象。
抽象类就是专门被用来继承的类。
二、使用abstract创建抽象方法
我们在使用继承父类的时候更多的时候是希望子类中自己对方法进行定义,这时候就可以使用抽象方法。
以abstract开头的方法就是抽象方法,且没有方法体,返回为空:
abstract 方法名( ) : void;
抽象方法只能定义在抽象类中,且子类必须对抽象方法进行重写。
// 父类Animal
abstract class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
abstract bark(): void;
}
// 子类Dog
class Dog extends Animal {
bark() {
console.log(this.name + "汪汪汪");
}
}
// 子类Cat
class Cat extends Animal{
bark() {
console.log(this.name + "喵喵喵");
}
}
let dog = new Dog("旺财");
dog.bark(); // 打印:旺财汪汪汪
let cat = new Cat("咪咪");
cat.bark(); // 打印:咪咪喵喵喵
如果我们不对父类中的抽象类进行重写,就会出现如下错误:
版权声明:本文标题:TS中抽象类的使用;解决报错:Non-abstract class ‘ ‘ does not implement all abstract members of ‘ ‘. 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729235176a1191909.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论