クラス/メソッド修飾子を使用してスプレッドシートを作成しようとしています。いくつか質問がありますが、スプレッドシート自体はここにあります。
1)私が読んだように、メソッドも可能ですがsealed
、これの目的は何ですか?オーバーライドからメソッドを保護しますか?
2)フィールドもクラスに含まabstract
れている必要がありますか?abstract
3)virtual
メソッドは定義されたオブジェクト/クラスに本体を持つことができますか?
sealed
メソッドは、継承チェーンをさらにオーバーライドすることを防ぎます。sealed
メソッドには override キーワードも必要です。
フィールドを にすることはできませんabstract
。フィールドはクラス レベルの変数です。それを上書きすることはできません。プロパティとメソッドは にすることができますがabstract
、必須ではありません。
virtual
とメソッドの違いabstract
は、仮想メソッドには実装があることです。派生クラスでその実装をオーバーライドできます。
1: はい、まさにそのとおりです。サブクラスで仮想メソッドが再度オーバーライドされないようにする
2: フィールドは抽象的ではありません。フィールドは実装です。抽象クラスでは抽象である必要はありません
3: はい。仮想修飾子は抽象修飾子とは異なります。どちらも仮想メソッドを表します - 違いは完全に基本クラスに実装があるかどうかです