11.2 Swift中的面向对象类型

上一节我们介绍了面向对象,在不同的计算机语言中,其具体的体现也是不同的。在C++和Java等语言中通过类实现面向对象,在Swift语言中通过类和结构体(struct)实现面向对象,在Swift语言中,枚举(enum)也具有面向对象特性。结构体和枚举在其他语言中完全没有面向对象特性,Swift语言赋予了它们面向对象生命。

提示 由于OOP中的类在Swift语言中涵盖了枚举、类和结构体。为了防止与OOP中的类发生冲突,在本书中我们把Swift中的这3种类型称为“Swift面向对象类型”。

在面向对象中,将类创建对象的过程称为实例化,因此将对象称为实例,但是在Swift中,结构体和枚举的实例不称为“对象”,因为结构体和枚举并不是彻底的面向对象类型,而是只包含了一些面向对象的特点。例如,在Swift中继承只发生在类上,结构体和枚举不能继承。

在Swift中,面向对象的概念还有:属性、方法、扩展和协议等,这些概念对于枚举、类和结构体等不同类型有可能不同,我们会在第12章、第13章和第16章中再明确说明。