Swift類聲明
類聲明
你可以在你的程序中使用類聲明來引入一個類。類聲明使用關鍵字class,遵循如下的形式:
class
class name
:superclass
,adopted protocols
{declarations
}
一個類內包含零或多個聲明。這些聲明可以包括存儲型和計算型屬性,實例方法,類方法,構造器,單獨的析構器方法, 類型別名,甚至其他結構體,類,和枚舉聲明。類聲明不能包含協議聲明。詳細討論和包含多種類聲明的實例,參見類和 結構體一節。
一個類只能繼承一個父類,超類,但是可以包含任意數量的協議。這些超類第一次在type-inheritance-clause出現,遵循任意協議。
正如在初始化聲明(Initializer Declaration)談及的那樣,類可以有指定和方便的構造器。當你聲明任一中構造器時, 你可以使用requierd變量來標記構造器,要求任意子類來重寫它。指定類的構造器必須初始化類所有的已聲明的屬性, 它必須在子類構造器調用前被執行。
類可以重寫屬性,方法和它的超類的構造器。重寫的方法和屬性必須以override標註。
雖然超類的屬性和方法聲明可以被當前類繼承,但是超類聲明的指定構造器卻不能。這意味着,如果當前類重寫了超類 的所有指定構造器,它就繼承了超類的方便構造器。Swift的類並不是繼承自一個全局基礎類。
有兩種方法來創建已聲明的類的實例:
- 調用類的一個構造器,參見構造器(initializers)。
- 如果沒有聲明構造器,而且類的所有屬性都被賦予了初始值,調用類的默認構造器,參見默認構造器(default initializers).
類實例屬性可以用點(.)來獲得,詳情參見獲得屬性(Accessing Properties)一節。
類是引用類型;當被賦予常量或變量,函數調用時,類的實例是被引用,而不是複製。獲得更多關於引用類型的信息, 結構體和枚舉都是值類型(Structures and Enumerations Are Value Types)一節。
你可以使用擴展聲明來擴展類的行爲,參見擴展聲明(Extension Declaration).
類聲明語法
類聲明 → 特性(Attributes)列表 可選 class 類名 泛型參數子句 可選 類型繼承子句 可選 類主體
類名 → 標識符
類主體 → { 聲明(Declarations)列表 可選 }