1

クラス/メソッド修飾子を使用してスプレッドシートを作成しようとしています。いくつか質問がありますが、スプレッドシート自体はここにあります。

1)私が読んだように、メソッドも可能ですがsealed、これの目的は何ですか?オーバーライドからメソッドを保護しますか?

2)フィールドもクラスに含まabstractれている必要がありますか?abstract

3)virtualメソッドは定義されたオブジェクト/クラスに本体を持つことができますか?

4

3 に答える 3

3
  1. sealedメソッドは、継承チェーンをさらにオーバーライドすることを防ぎます。sealedメソッドには override キーワードも必要です。

  2. フィールドを にすることはできませんabstract。フィールドはクラス レベルの変数です。それを上書きすることはできません。プロパティとメソッドは にすることができますがabstract、必須ではありません。

  3. virtualとメソッドの違いabstractは、仮想メソッドには実装があることです。派生クラスでその実装をオーバーライドできます。

于 2012-06-24T11:57:28.847 に答える
3

1: はい、まさにそのとおりです。サブクラスで仮想メソッドが再度オーバーライドされないようにする

2: フィールドは抽象的ではありません。フィールド実装です。抽象クラスでは抽象である必要ありません

3: はい。仮想修飾子は抽象修飾子とは異なります。どちらも仮想メソッドを表します - 違いは完全に基本クラスに実装があるかどうかです

于 2012-06-24T11:58:29.547 に答える
1
  1. はい
  2. いいえ - 抽象フィールドのようなものはありません。クラスは抽象です。つまり、インスタンス化することはできませんが、定義されたフィールドは派生した非抽象クラスのレイアウトの一部です。
  3. はい
于 2012-06-24T11:57:36.383 に答える