ホームページ  >  記事  >  Java  >  カプセル化、継承、ポリモーフィズムの理解

カプセル化、継承、ポリモーフィズムの理解

Guanhui
Guanhuiオリジナル
2020-05-28 17:47:4136507ブラウズ

カプセル化、継承、ポリモーフィズムの理解

#カプセル化、継承、ポリモーフィック理解

1. カプセル化

つまり、客観的なものを抽象クラスにカプセル化し、このクラスは、信頼できるクラスまたはオブジェクトのみによって独自のデータおよびメソッドが操作されることを許可し、信頼されていないクラスまたはオブジェクトからは情報を隠すことができます。カプセル化はオブジェクト指向の特徴の 1 つであり、オブジェクトとクラスの概念の主な特徴です。簡単に言うと、クラスはデータと、このデータを操作するコードをカプセル化する論理エンティティです。オブジェクト内では、一部のコードまたは一部のデータはプライベートにすることができ、外部からアクセスすることはできません。このように、オブジェクトは内部データにさまざまなレベルの保護を提供し、プログラムの無関係な部分が誤って変更されたり、オブジェクトのプライベート部分が誤って使用されたりすることを防ぎます。

2. 継承

は、特定の型のオブジェクトが別の型のオブジェクトのプロパティを取得できるようにするメソッドを指します。階層分類の概念をサポートします。継承とは、元のクラスを書き直すことなく、既存のクラスのすべての機能を使用して拡張できる機能を指します。継承によって作成された新しいクラスを「サブクラス」または「派生クラス」と呼び、継承されたクラスを「基本クラス」、「親クラス」、または「スーパークラス」と呼びます。相続のプロセスは、一般から特殊へのプロセスです。継承を実現するには「継承」と「合成」によって実現できます。継承の概念を実装するには、実装の継承とインターフェイスの継承の 2 種類の方法があります。実装の継承は、追加のコーディングなしで基本クラスのプロパティとメソッドを直接使用できる機能を指します。インターフェイスの継承は、プロパティとメソッドの名前のみを使用できるが、サブクラスが実装を提供する必要がある機能を指します。

3. ポリモーフィズム

は、クラス インスタンスの同じメソッドが異なる状況で異なる表現を持つことを意味します。ポリモーフィズムにより、異なる内部構造を持つオブジェクトが同じ外部インターフェイスを共有できるようになります。これは、異なるオブジェクトに対する特定の操作は異なりますが、それら (それらの操作) は共通のクラスを通じて同じ方法で呼び出すことができることを意味します。

5 つの基本原則

単一責任原則 SRP (単一責任原則)

は、クラスの機能は単一でなければならず、すべてを担うことはできないことを意味します。 -包括的。人間と同じように、あまりにも多くの仕事を割り当てられるべきではありません。そうしないと、一日中忙しくても効率は高くありません。

オープンクローズ原則 OCP (オープンクローズ原則)

モジュールは、拡張性の観点からオープンであり、変更可能性の観点からクローズされている必要があります。例: ネットワーク モジュールには元々サーバー側の機能しかありませんでしたが、クライアント側の機能を追加する必要があります。

その場合、サーバー側の機能を変更せずに、クライアント側の機能の実装コードを追加する必要があります。設計の初めにサーバーとクライアントを分離し、公開部分を抽象化する必要があります。

リスコフ置換原理 LSP

サブクラスは親クラスを置き換えることができ、親クラスが出現できる場所であればどこにでも出現できる必要があります。例:会社では年に一度のパーティーを開催し、社員全員が抽選に参加できるようにする場合、旧社員でも新入社員でも、

本社社員でも駐在員でも関係なく、全員が抽選に参加することができます。宝くじに参加できなければ、会社は調和しません。

依存性反転原則 DIP (依存性反転原則 DIP) 具体は抽象に依存し、上位層は下位層に依存します。 B は A よりも下位モジュールであると仮定しますが、B は A の関数を使用する必要があります。

現時点では、B は A の具象クラスを直接使用すべきではありません。代わりに、B は抽象インターフェイスを定義し、 A がそれを使用します。この抽象インターフェイスを実装するために、B はこの抽象インターフェイスのみを使用します。これにより、依存関係の逆転の目的が達成され、B は A への依存も解放されます。次に、A は、B によって定義された抽象インターフェイスに依存します。上位モジュールを介して下位モジュールに依存することを避けるのは難しく、B も A の実装に直接依存すると、循環依存関係が発生する可能性があります。よくある問題は、モジュール A をコンパイルするときにモジュール B の cpp ファイルを直接インクルードする必要があり、B をコンパイルするときに A の cpp ファイルも直接インクルードする必要があることです。

インターフェイス分離原則 ISP

モジュールは、特定のクラスを通じて強力に結合するのではなく、抽象インターフェイスを通じて分離する必要があります

## 推奨されるチュートリアル: 「PHP チュートリアル
」「
Java

以上がカプセル化、継承、ポリモーフィズムの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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