类的注解

  1. class Person {
  2. name: string;
  3. constructor (name: string) {
  4. this.name = name;
  5. }
  6. sayHi (): string {
  7. return "Hi, " + this.name;
  8. }
  9. }
  10. let person1 = new Person("zs");

继承中的super

  1. class Animal {
  2. name: string;
  3. constructor (theName: string) {
  4. this.name = theName;
  5. }
  6. move (m: number) {
  7. console.log(`${this.name} move ${m}m `);
  8. }
  9. }
  10. class Dog extends Animal {
  11. constructor (name: string) {
  12. super(name); // 这里的super是父类的构造函数
  13. }
  14. move (m = 10) {
  15. console.log("wangwangwang!");
  16. super.move(m); // 这里的super是父类
  17. }
  18. }

类成员的修饰符

public ( 公共属性 )

  1. 自身可调用
  2. 子类可调用
  3. 实例可调用

    private ( 私有属性 )

  4. 仅仅只能自身调用

    protected ( 保护属性 )

  5. 自身可调用

  6. 子类可调用

    readonly ( 只读属性 )

    设置为只读,只读属性只能在声明时或构造函数内赋值。
    注:该修饰符在要写在上面修饰符的后面,不能修饰方法。 ```typescript class Person { private readonly name: string, constructor (name: string) { this.name = name; } }

// ———可简写为↓————

class Person { constructor (private readonly name: string) {} }

  1. <a name="E4Chx"></a>
  2. ## 抽象类
  3. 能够提供其他类的基类;无法创建实例;抽象方法一定要有实现。<br />关键字:abstract
  4. ```typescript
  5. abstract class Animal {
  6. absctract makeSound (): void; // 必须在子类中实现
  7. move () {
  8. console.log("dadadada");
  9. }
  10. }
  11. new Animal(); // -> 报错
  12. class Cat extends Animal {
  13. makeSound () {
  14. console.log("miaomiaomiao~")
  15. }
  16. }
  17. class Dog extends Animal {
  18. makeSound () {
  19. console.log("wangwangwang~")
  20. }
  21. }
  22. let cat = new Cat();
  23. let dog = new Dog();