💭

final は何をしている?

に公開

finalがつけられたclassの継承を禁止している

例えば、

final class KeyboardResponder: ObservableObject {

}

のようにあったとしたら

class MyResponder: KeyboardResponder 

とするとコンパイルエラーになります

final を使うメリット

このクラスを継承して拡張しないでと意図を明確にできる

→ どんな時?

①小さなユーティリティクラス(拡張の必要なし)

②外部との窓口や基盤系クラス(一貫性を壊されたくない)

③ライブラリ提供側(利用者に安全な使い方を強制したい)

こういうときです。

Discussion