のの仮想および新しいキーワードの使用法 オブジェクト指向プログラミングでは、通常、ベースクラスで定義され、これらの方法は派生クラスで書き換えまたは再定義されます。 「仮想」と「新しい」キーワードの両方を使用してメソッド宣言を変更できますが、異なる実装方法があります。
Dirtual rewriting
ベースクラスで「仮想」として宣言された方法は、サブクラスを書き直すことができることを示しています。
デリバティブクラスの基礎中国の方法と同じ名前の新しい方法を述べてください。
基本的な方法を非表示にし、派生クラスに新しい実装を作成します。パブリッククラスベース {{ public virtual bool dosomething(){return false;} } パブリッククラス派生:ベース:ベース {{ パブリックオーバーライドbool dosomething(){return true;} }
派生インスタンスを作成してベースタイプ変数に保存すると、dosomething()の呼び出しは、派生の書き換え方法を呼び出します:
public class Base
{
public virtual bool DoSomething() { return false; }
}
public class Derived : Base
{
public override bool DoSomething() { return true; }
}
逆に、派生の新しいキーワードを使用すると、変数がベースタイプであっても、新しいメソッドを呼び出します。
パブリッククラス派生:ベース {{ Public New Bool dosomething(){return true;} }
Base a = new Derived();
a.DoSomething(); // 返回 true
base a = new derived();
a.dosomething();
いつ仮想と新しい
を書き直すかpublic class Derived : Base
{
public new bool DoSomething() { return true; }
}
新しい独立した実装を作成するために新品を使用して、継承チェーンを破壊します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3