[27]学習C#の抽象クラスと開閉の原則

何がSOLIDありますか?

SOLID [5]頭字語は、オブジェクト指向設計の原則である、彼らは以下のとおりです。

(1)単一責任の原則(SRP) - シングル責任の原則

(2)リストを展開されるリストを閉じる原則(OCP) - オープンクローズドの原則

(3)リスコフSubsititution原則(LSP) - リヒターの置換原則

(4)インタフェースSegreguation原理(ISP) - インタフェース偏析原理

(5)依存性逆転原理(DIP) - 依存性逆転原理

5つの設計原理は、デザインパターンを多数飼育デザインパターンは、複数の固定されており、基本的な原則に基づいて、よりハイエンドの使用

基本クラスを作成するための[] [生まれた抽象クラス]

  • 抽象メソッド:「抽象的」に変更として、唯一の戻り値、メソッド名とパラメータリストが、メソッドのない体が存在しない、方法が抽象的です

クラスは抽象メンバーが含まれている場合、このクラスは抽象クラスになり、そうでない場合、コンパイラは文句を言うだろう、改変された」」抽象的でなければなりません

//抽象类
abstract class Vehicle
{
	abstract public void Run();  //抽象方法
}
  • したがって、抽象クラスの定義は、以下の操作を実行します。
    抽象クラスは以下のとおりです。機能は完全にクラスメンバを実装されていません;実装されていないことは、抽象クラスは、いくつかの機能のメンバーを持つことができる、と言うことですが、少なくとも1メンバ関数で、ある(「抽象的」変更されています)

  • また、抽象クラスメンバーの機能が実装されていない、そのアクセスレベルが「プライベート」することはできません、子クラスであなたが達成したいことをするので

  • コンパイラは、抽象クラスをインスタンス化しないだろう、それは言うことができます。抽象クラスは、基底クラスが生まれているようにすることですその役割がある:
    (1)機能部材を実装する基本クラスを派生クラスで実装されていないとして、
    (2)基本型変数の型と派生クラスのインスタンスを参照(多型)

  • 行うことができる唯一の抽象クラスは、ベースクラスときに別のクラスを与えることである基本クラスタイプには、変数を宣言し、そして完全に、マルチステート性能サブクラスタイプのその抽象メンバーを実現しているものの例を挙げします

オープンクローズ原理

アイドルはすべての権利、クラスのコードを変更し、古い成長しない、ないバグ修正のためや機能を追加した場合は、[、特に、それがコードの中でクラスのメンバ関数であります - 私たちは、これらの不確実性は、抽象メンバとして宣言されたメンバーを変更することは可能であるが、一定の、安定した、固定し、特定のメンバーをカプセル化し、実装するために子クラスを残したはずです

抽象クラスの応用や開閉の原則

コードはステップ再建バイステップでどのように注意してください
この方法は、車両クラスに定義されていないため、(1)は、変数v run()メソッドを呼び出すことはできません
ここに画像を挿入説明

(2)悪い溶液
ここに画像を挿入説明

(3)を用いて書き換えることができます。
ここに画像を挿入説明

(4)は、より好ましくは、抽象クラスに書き込ま
抽象親クラスがサブクラスの実装を実装していない場合は、「上書き」を追加します
ここに画像を挿入説明

インターフェースは何ですか?

抽象メンバーは抽象クラスのすべてのメンバーのための機能はありませんか?
もちろん、そこにある
ここに画像を挿入説明
純粋な抽象クラス/純粋仮想クラスがインターフェースは、実際には、
ここに画像を挿入説明

概要インターフェイスと抽象クラス

ここに画像を挿入説明

公開された29元の記事 ウォンの賞賛3 ビュー929

おすすめ

転載: blog.csdn.net/weixin_44813932/article/details/104077129