第 10 章 类
类(class
)是对象(object
)的模板,通过类创建对象。在类中定义对象的具体属性和方法,然后通过类的构造函数,依照模板产生一个或多个新的对象。
在基于类的面向对象编程中,对象依靠类来产生。这种编程方式具备 3 个特性。
-
封装:将事物抽象为类,仅暴露对外的接口,而隐藏内部实现和内部数据。
-
继承:一个类能够继承另一个基础类,它具备另一个类的所有功能,在无须修改原来的类的情况下就可以对这些功能进行扩展。
-
多态:不同的子类对同一个行为可以拥有不同的运作方式,通过父类接口调用不同的子类对象,以便使用不同的运作方式执行某个行为。
在 ECMAScript 6 发布之前并没有类这个概念,要实现类似类的行为,就需要使用原型来模拟实现类的设计模式。但原型的使用方式并不符合人的思维,会降低代码的可维护性和可读性,增加出错的概率。ECMAScript 6 引入了类的概念,使得 TypeScript 从代码层面可以正式支持面向对象编程,但它只是语法糖,原理仍然是基于原型的实现,但代码更清晰明了,易于维护。
本章将详细介绍类的应用。