finalがつけられたclassの継承を禁止している
例えば、
final class KeyboardResponder: ObservableObject {
}
のようにあったとしたら
class MyResponder: KeyboardResponder
とするとコンパイルエラーになります
final を使うメリット
このクラスを継承して拡張しないでと意図を明確にできる
→ どんな時?
①小さなユーティリティクラス(拡張の必要なし)
②外部との窓口や基盤系クラス(一貫性を壊されたくない)
③ライブラリ提供側(利用者に安全な使い方を強制したい)
こういうときです。
Discussion