C#における抽象メソッドと虚メソッドの違い
1394 ワード
前言:前に抽象的な方法と虚の方法を詳しく説明したことがあります.降りて、私たちは探求してみましょう.その違いはどこにありますか.
直通車:C#抽象方法、C#虚方法
目次:一、両者の区別 二、両者使用シーン 一、両者の違い
区別タイプ
抽象メソッド
ダミーメソッド
定義#テイギ#
宣言
抽象メソッドを宣言するときにメソッド体を持つことはできません(つまり具体的な実装はできません)
ダミーメソッドを宣言するときにメソッドボディが必要です(具体的な実装が必要です)
クラスへの影響
このクラスで抽象メソッドが宣言されている場合、このクラスは抽象クラスとして宣言する必要があります.抽象クラスには他の一般的なメソッドも含まれます.
クラスにダミーメソッドが宣言されています.このクラスは変更する必要はありません.
インプリメンテーション
親クラスで抽象メソッドが宣言されている場合は、子クラスでこの抽象メソッドを書き直さなければなりません(
親クラスにダミーメソッドが宣言されている場合、子クラスで書き換えることもできます(
さぎょう
サブクラスを制約するには、メソッドを実装する必要がある仕様と同様です.
コード多重化傾向
補足:
1つの仮想メソッドの実装は派生クラスに取って代わることができる.継承された仮想メソッドの実装に代わるプロセスを書き換える方法と呼ぶ.1つの仮想メソッド呼び出しでは、呼び出しに関連するインスタンスの実行時タイプが、呼び出されるメソッドのどの実装であるかを決定する.
これはC#虚の方法で詳しく説明しました
二、両者がシーンを使う
1つの例で説明します:ベースクラス:動物の2つのサブクラス:犬とカエルは現実的に犬とカエルが鳴くので、2つのサブクラスはこの方法を実現しなければならないので、この方法を抽象的な方法と定義することができます.犬は狩りをする時、まず目標をロックして、爪と歯で捕まえます.カエルは狩りをするとき、まず目標をロックし、舌で捕まえる.捕獲の時、両者は同じ一環で目標をロックしているが、捕獲方法が異なるだけで、捕獲という方法を虚の方法と定義することができる.すなわち,同じリンクロックターゲットを捕獲という虚メソッドに書き,サブクラスで捕獲というメソッドを呼び出してそれぞれの捕獲方式を追加すればよい.
サブクラスでベースクラスメンバーを呼び出すには、
早くコメントエリアに来てソファーを奪いなさい!!!
直通車:C#抽象方法、C#虚方法
目次:
区別タイプ
抽象メソッド
ダミーメソッド
定義#テイギ#
abstract
キーワード定義の使用virtual
キーワード定義の使用宣言
抽象メソッドを宣言するときにメソッド体を持つことはできません(つまり具体的な実装はできません)
ダミーメソッドを宣言するときにメソッドボディが必要です(具体的な実装が必要です)
クラスへの影響
このクラスで抽象メソッドが宣言されている場合、このクラスは抽象クラスとして宣言する必要があります.抽象クラスには他の一般的なメソッドも含まれます.
クラスにダミーメソッドが宣言されています.このクラスは変更する必要はありません.
インプリメンテーション
親クラスで抽象メソッドが宣言されている場合は、子クラスでこの抽象メソッドを書き直さなければなりません(
override
).この抽象メソッドを書き直さなければ、子クラスは抽象クラスとして宣言する必要があります.親クラスにダミーメソッドが宣言されている場合、子クラスで書き換えることもできます(
override
)上書きすることもできます(new
)上書きしないこともできますが、上書きしないこともできます.さぎょう
サブクラスを制約するには、メソッドを実装する必要がある仕様と同様です.
コード多重化傾向
補足:
1つの仮想メソッドの実装は派生クラスに取って代わることができる.継承された仮想メソッドの実装に代わるプロセスを書き換える方法と呼ぶ.1つの仮想メソッド呼び出しでは、呼び出しに関連するインスタンスの実行時タイプが、呼び出されるメソッドのどの実装であるかを決定する.
これはC#虚の方法で詳しく説明しました
二、両者がシーンを使う
1つの例で説明します:ベースクラス:動物の2つのサブクラス:犬とカエルは現実的に犬とカエルが鳴くので、2つのサブクラスはこの方法を実現しなければならないので、この方法を抽象的な方法と定義することができます.犬は狩りをする時、まず目標をロックして、爪と歯で捕まえます.カエルは狩りをするとき、まず目標をロックし、舌で捕まえる.捕獲の時、両者は同じ一環で目標をロックしているが、捕獲方法が異なるだけで、捕獲という方法を虚の方法と定義することができる.すなわち,同じリンクロックターゲットを捕獲という虚メソッドに書き,サブクラスで捕獲というメソッドを呼び出してそれぞれの捕獲方式を追加すればよい.
サブクラスでベースクラスメンバーを呼び出すには、
base
キーワードC#baseキーワード使用法大全を使用します.早くコメントエリアに来てソファーを奪いなさい!!!