Swift中避免重載的final修飾符

來源:互聯網
上載者:User

Swift中的final修飾符可以防止類(class)被繼承,還可以防止子類重寫父類的屬性、方法以及下標。需要注意的是,final修飾符只能用於類,不能修飾結構體(struct)和枚舉(enum),因為結構體和枚舉只能遵循協議(protocol)。雖然協議也可以遵循其他協議,但是它並不能重寫遵循的協議的任何成員,這就是結構體和枚舉不需要final修飾的原因。 final修飾符的幾點使用原則 final修飾符只能修飾類,表明該類不能被其他類繼承,也就是它沒資格當父類。 final修飾符也可以修飾類中的屬性、方法和下標,但前提是該類並沒有被final修飾過。 final不能修飾結構體和枚舉。 程式碼範例

final class Train {//Todo...}class MaglevTrain: Train {// 編譯失敗//Todo...}

上面代碼中,因為Train類被final修飾過,所以當MaglevTrain類繼承了Train後,編譯器會提示錯誤。

class Train {
final func method() 
{
//Todo...
}
}
 
class MaglevTrain: Train {
override func method()
{// 編譯失敗//Todo...
}
}

上面的代碼中,因為Train類中的method方法被final修飾過,所以當子類MaglevTrain重寫父類的method方法時,編譯器會提示錯誤。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.