ホームページ >バックエンド開発 >C++ >新しい対オーバーライド:継承で各メソッド修飾子をいつ使用する必要がありますか?

新しい対オーバーライド:継承で各メソッド修飾子をいつ使用する必要がありますか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-28 11:51:09812ブラウズ

new vs. override: When Should You Use Each Method Modifier in Inheritance?

>の変更文字new overrideを理解してください オブジェクト指向プログラミングでは、派生クラスが基本クラスを再利用および変更できるようにする方法を継承します。ただし、

は2つの異なる修飾子を使用でき、それぞれが特定の目的を持っています。

new状況1:overridemodifierの継承方法を使用

newmodifierを使用する場合、派生クラスはベースメソッドと同じ名前の個別のメソッドを作成します。これにより、実際には、デリバティブのベースクラスメソッドの可視性が隠されています。基本クラスのコーディングは、ベースクラスメソッドの実装を直接使用し、派生クラスを参照するコーディングコードは、派生クラスメソッドの実装を使用します。

状況2:

modifierの継承方法を使用new

一方、

デリバティブクラスの変更は、ベースクラスのメソッドに同じ署名を置き換えるように設計されています。これは、メソッドが基本クラスの参照で呼び出される場合、微分クラスの定義の実現を常に使用することを意味します。 override重要な違い

可視:

override基本クラスのメソッドを非表示にし、

それを交換します。

呼び出しと分析:

ベースクラスの参照アクセスが同じであっても、派生クラスのメソッドを常に呼び出し、最終定義実装を呼び出します。
  • 例:まったく異なるバージョンのメソッドを作成するために使用でき、newを使用してベースメソッドを展開または変更します。 override
  • new次の基本クラスとデリバティブを検討してください:override
  • この例では、導出されたクラスの
  • モディファイアは、doit()が派生クラスで呼び出されたときに、参照のタイプに関係なく、derived.doitの定義の実現を実行することを保証します。タイプが使用されます

以上が新しい対オーバーライド:継承で各メソッド修飾子をいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。