如何定义一个类,如果添加类的属性和方法。
class Student {name = 'cos';getName() {return this.name;}}const s1 = new Student();console.log(s1.getName()); // cos
TS中类的继承方法和ES6是一致的。
class Student {name = 'cos';getName() {return this.name;}}// TS中类的继承方法和ES6是一致的。class Pupil extends Student {getPupilName() {return 'Pupil..'}}const pupil = new Pupil();console.log(pupil.getName());// jack..console.log(pupil.getPupilName());// Pupil..
类还有一个概念叫做重写,也就是子类可以重写父类的东西。
如何区分子类父类:被继承者是父类 继承者是子类。
在子类中可以对父类的方法或者属性做重写。
所以在上述代码的基础上输出结果会变成:
cos jack.. Pupil..
那么如果我希望把父类 getName 的内容和 子类 getName的内容做一个整合呢?
我们可以使用super关键字,
在子类中 super 指向父类。所以如果我写成 super.getName() 实际上是调用的父类的getName方法。
...class Pupil extends Student {getPupilName() {return 'Pupil..'}getName() {return super.getName() + 'wang'; // coswang}}...
super 一般用来做什么?如果一个子类中重写了父类的方法,这个时候如果还想调用父类中的这个方法那就可以通过super实现。
