TypeScript - 类
1. 定义类 class Person { name: string; // 属性 // 构造函数, 实例化类的时候触发 constructor(name: string) { this.name = name; } // 普通函数 run(): void { console.log(this.name); } } var person: Person = new Person('Tom'); person.run(); 2. 继承 (extends, super) class Student extends Person { constructor(name: string) { super(name); } study(): void { console.log(`${this.name}在学习`); } } var student: Student = new Student('Tom'); student.run(); student.study(); 注: 如果父类子类中有同样的方法, 则调用的是子类的方法 3. 类中属性的修饰符 public: 公有, 在类中, 子类和类外部都可以访问 protected: 保护, 在类中和子类中可以访问, 在类外部不能访问 private: 只能在类中访问, 子类和类的外部都不能访问 注: 属性如果不加修饰符, 默认为public 4. 静态属性/静态方法 class Person { // 静态属性 static str: string = 'aaa'; // 静态方法 static run() { // ... } } 注: 静态方法中不能直接调用类里面的非静态属性 5. 多态 父类定义一个方法不去实现, 让继承它的子类去实现, 每一个子类有不同的表现 6. 抽象类 它是提供其他类继承的基类, 不能直接被实例化 用abstract关键字定义抽象类和抽象方法 抽象类中的抽象方法不包含具体实现并且必须在派生类中实现 抽象方法只能写在抽象类中 abstract class Animal { abstract eat(): void; } class Dog extends Animal { eat(): void { // 抽象类的子类必须实现父类的抽象方法 } }