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