如何定义一个类,如果添加类的属性和方法。

    1. class Student {
    2. name = 'cos';
    3. getName() {
    4. return this.name;
    5. }
    6. }
    7. const s1 = new Student();
    8. console.log(s1.getName()); // cos

    TS中类的继承方法和ES6是一致的。

    1. class Student {
    2. name = 'cos';
    3. getName() {
    4. return this.name;
    5. }
    6. }
    7. // TS中类的继承方法和ES6是一致的。
    8. class Pupil extends Student {
    9. getPupilName() {
    10. return 'Pupil..'
    11. }
    12. }
    13. const pupil = new Pupil();
    14. console.log(pupil.getName());// jack..
    15. console.log(pupil.getPupilName());// Pupil..

    类还有一个概念叫做重写,也就是子类可以重写父类的东西。
    如何区分子类父类:被继承者是父类 继承者是子类。
    在子类中可以对父类的方法或者属性做重写。
    所以在上述代码的基础上输出结果会变成:

    cos jack.. Pupil..

    那么如果我希望把父类 getName 的内容和 子类 getName的内容做一个整合呢?
    我们可以使用super关键字,
    在子类中 super 指向父类。所以如果我写成 super.getName() 实际上是调用的父类的getName方法。

    1. ...
    2. class Pupil extends Student {
    3. getPupilName() {
    4. return 'Pupil..'
    5. }
    6. getName() {
    7. return super.getName() + 'wang'; // coswang
    8. }
    9. }
    10. ...

    super 一般用来做什么?如果一个子类中重写了父类的方法,这个时候如果还想调用父类中的这个方法那就可以通过super实现。