TypeScript 类和对象
类(Class)是面向对象编程(OOP)的核心概念,它是创建对象的蓝图。TypeScript 全面支持 ES6 中引入的类语法,并在此基础上添加了类型注解、访问修饰符等特性。
什么是类和对象?
- 类 (Class): 一个模板或蓝图,用于描述一类对象的共同属性(数据)和行为(方法)。
- 对象 (Object): 类的一个实例。通过
new关键字创建,拥有类所定义的属性和方法。
定义一个类
下面是一个简单的类定义:
继承 (Inheritance)
继承是允许一个类(子类)获取另一个类(父类)的属性和方法的一种机制。使用 extends 关键字来实现继承。
super(): 在子类的构造函数中,必须调用super()来执行父类的构造函数。super.method(): 可以用来调用父类中被重写(override)的方法。
访问修饰符 (Access Modifiers)
TypeScript 提供了三种访问修饰符,用于控制类成员(属性和方法)的可访问性。
-
public(默认): 成员可以在任何地方被访问。如果你不指定修饰符,它默认为public。 -
private: 成员只能在声明它的类内部被访问。子类和类的实例都无法访问。 -
protected: 成员可以在声明它的类以及该类的子类中被访问,但不能在类的实例上访问。
只读修饰符 (readonly)
readonly 关键字可以确保属性在声明时或构造函数中被初始化后,不能再被修改。
静态属性和方法 (static)
静态成员属于类本身,而不是类的实例。你可以直接通过类名来访问它们,而不需要创建对象。
抽象类 (abstract)
抽象类是作为其他类的基类的。它们不能被直接实例化。抽象类中可以包含抽象方法,这些方法没有具体的实现,必须在派生类中被实现。