オブジェクト指向の三つの特徴
我々はすべて知っているように、C#が進化し、Java言語によって変更され、その後、#とJava C、多くの点で類似している実際には、オブジェクト指向の三つの特徴:カプセル化、継承、ポリモーフィズム。
継承された彼の父の息子:私は、我々は最初の二つであると信じて、より身近に、パッケージの音は非常に抽象的、実際には基本的なプログラミングのプロセスと多くの場所が連続して使用される、相対的に言って、理解しやすい、あなたは単にとして理解することができますプロパティは、すべてのプロパティとメソッドの父と、継承は実際の多型のための前提条件であり、ここではあまり説明されていない、正しく理解していない場合は、マルチステート行動COLLATEに焦点を当て、私は今日を学ぶために得る経験をまとめます場所は、ご了承くださいます!
多型:対応する機能を、要約する単語、派生クラスでオーバーライド機能と、基本クラスの前に仮想キーワードを追加呼び出しは、実行時にオブジェクトの実際のタイプに基づいて説明します。オブジェクト・タイプが派生クラスである場合、派生クラスが呼び出され、オブジェクト・タイプは基本クラスである場合、基本クラスが呼び出されます。前記多型静的及び動的分類多型に分けます。
①関数のオーバーロードは、静的な多型である、もはや比較的簡単に説明できなくなります
例として、次のコード
公共int型の和(int型B、INT){
+ bを返します。
}
INTメイン(){
合計(10,20)。
0を返します。
}
②動的多型は:明らかに、この静的及び多型が、どの呼基本クラスのオブジェクトを指す参照(ポインタ)に応じて、その特定のクラスの仮想関数を決定するために、プログラムが実行され、逆です。
状態は前に継承されている必要がありますどのように、唯一つ以上のクラスでは、多型という引数を持って、同じクラスを継承しています。
継承の前提の下で、同じメソッドを呼び出して別のオブジェクトをインスタンス化しますが、多型と呼ばれる異なる挙動を呈します。
仮想メソッド、抽象クラス、インターフェイス:C#言語多型3通りの方法で反映。
1、仮想メソッド
1.1は、仮想何ですか?
親クラスでvirtualキーワード修正メソッドを使用しますが、仮想です。これは、サブクラスでオーバーライドキーワード仮想メソッドを使用して書き換えることができます。
仮想メソッドは、個別に実行することができます。
1.2仮想メソッドの構文
親クラス:
パブリック仮想メソッドの戻り値の型の名前()
{
コードメソッド本体;
}
サブクラス:
公共オーバーライド戻り値の型メソッド名()
{
コードメソッド本体;
}
2、抽象クラス
私たちは、このメソッドの親クラスを使用すると、表現の別のフォームを使用することができる仮想ボディの方法を決定することが完全にできなかったとき、仮想メソッドは、本体の方法があり、このフォームは抽象メソッドと呼ばれています。
2.1抽象メソッドの構文
抽象メソッドは、タイプキーワード抽象変更前の値、及びそのない方法を返します。
公共の抽象無効こんにちは();
抽象メソッドは抽象クラスに存在している必要があります。
抽象クラスFuLei
3.インタフェース
3.1インターフェイス構文
抽象クラスへのインタフェース3.1.1
名前空間のXXX { インタフェースIFly
//実際の使用量は、フロントインターフェイスは、公開を追加する方法を与えていない国民を、追加することも可能です。例えば、インターフェースのサブタイプのオブジェクトのインスタンスにロード
{ //インターフェイスは、フィールドを含めることはできません。 //プライベート文字列名; //インタフェースメソッドは(デフォルトはpublic)アクセス修飾子を持つことができない、メソッド本体を持つことはできません 空フライ(); } }
抽象クラスのすべてのメソッドは抽象的、時間、追加でこの抽象クラスには、この時間ある場合
このフォームはインタフェースと呼ばれていることを示すために、フォーム。
仮想メソッド、抽象クラスは、多型3つの実装手段をインタフェースします。
3.1.2構文の要件:
キーワード定義するインターフェイスを使用するインタフェースは、classキーワードは、一般的な使用「IXXXXを」インターフェースません
(私は時々依存性注入のために、直接負荷サブクラスオブジェクトへのインタフェースを使用するため、実際には、インタフェース前公衆を増加させるために使用されます)
自動属性公共int型の年齢を使用して取得または設定し;})
<1>すべてのインタフェースメソッドが抽象であり、インタフェースはインスタンス化できません。
<2>クラスは、複数のインタフェースを実装することができ、インタフェースは、コンマで区切られた複数の間で実施されます。
クラスバットモービル:車、IFly
<3>インタフェースを継承することができる複数のインターフェースは、インターフェースは、カンマで区切られました。
クラス間の単一継承のみ。
3.1.3概要
継承の前提の下で、同じメソッドを呼び出して別のオブジェクトをインスタンス化しますが、
多型と呼ばれる別の行動を呈します。
三つの構文は次のとおりです。
3つの使用シナリオの比較:
仮想メソッド:仮想メソッドとメソッドの個々の親クラス、次に必要な場合にこれらのサブクラスの仮想メソッドを上書きすることが可能。
仮想和オーバーライド
親クラスは、オブジェクトをインスタンス化することができる仮想メソッドを含みます。
抽象クラス:親クラスは、すべてのこれらの仕様は、達成の親クラスで定義されたサブクラスに仕様のセットを定義します。
抽象和オーバーライド
親クラスが抽象的ですが、それだけではインスタンス化することはできません。
インターフェース:それは拡張の機能であり、新しい機能は、クラスの継承元の外側を拡張したものです。
インタフェースIXXXX 空B1(); クラス紫:フー、IBBB { 公共のボイドB1() { Console.WriteLineを( "B1")。 } }
絵の一部とにコピーします。https://www.cnblogs.com/qixinbo/p/8244583.html