抽象クラスとは
まず、何を理解することが重要です。 抽象クラス にある PHP .インスタンス化できないクラス、またはオブジェクトに直接作成できないクラスは、 概要 .代わりに、それを継承する他のクラスは、それを基本クラスまたは親クラスとして使用します。 抽象クラス 派生クラスの特定の実装を提供しません。むしろ、それらの構造と動作の概要を示しています。これにより、派生クラスは、抽象クラスによって提供される基本的なフレームワークに準拠しながら、独自の独自の動作を維持できます。
の一環として PHP の 開ける 、 抽象クラス 複数の派生クラスで共有できる特性の基本コレクションを定義する手段として機能します。開発者は、抽象クラスを作成することにより、抽象クラスから継承するクラスのテンプレートを提供できます。すべての派生クラスが同じインターフェイスに準拠していることを確認するために、このブループリントは、 抽象クラス そして派生クラス。実装の詳細は各サブクラスに任されていますが、このインターフェイスはすべてのサブクラスに必要な共通メソッドを指定します。抽象クラスに加えられた変更は、それを使用するすべての派生クラスに即座に反映されるため、コードの再利用が増え、メンテナンスが容易になります。
抽象クラスは PHP でどのように機能しますか?
とき 「抽象」キーワード を使用してクラスを定義すると、そのクラスをインスタンス化できないことが PHP に通知されます。両方 概要 と 非抽象的 メソッドはで見つけることができます 抽象クラス . 概要 メソッドは、 '概要' キーワードであり、実装を提供しません。メソッド シグネチャを宣言するだけです。これらの抽象メソッドは、から派生した派生クラスによって実装する必要があります。 抽象クラス . 非抽象的 一方、メソッドは、派生クラスがオーバーライドすることを選択できるデフォルトの実装を提供します。
例を見てみましょう:
概要 クラス 自分 {
概要 関数 私について ( $name 、 $年齢 ) ;
}
クラス はじめに 伸びる 自分 {
関数 私について ( $name 、 $年齢 ) {
エコー '私の名前は $name そして私の年齢は $年齢 ' ;
}
}
$a = 新しい はじめに ( ) ;
$a -> 私について ( 'ボブ' 、 21 ) ;
?>
上記のコードでは、 抽象メソッド の中に 抽象親クラス 「私」には、「名前」と「年齢」の 2 つの引数があります。子クラス「Intro」もこれら 2 つの引数を使用して同じ関数を定義し、intro ステートメントが画面に出力されます。
出力
PHP における抽象クラスの利点
1: コードの再利用性
抽象クラス PHP では、コードを再利用できるという大きな利点があります。で共有動作を定義することにより、 抽象クラス 、多くの異なるサブクラスでコードを繰り返すことを避けることができます。これにより、コードの管理と維持がより簡単になります。 抽象クラス また、すべてのサブクラスに一貫性と標準を適用するのにも役立ちます。
2: 抽象プロパティを定義する
の PHP 、抽象クラスには便利な機能があります 概要 プロパティ。これらのプロパティを使用すると、サブクラスの特定の要件を設定できます。たとえば、動物用のシステムを作成している場合、次の抽象プロパティを設定できます。 $name すべてのサブクラスに name プロパティが必要です。これにより、コードの構造に一貫性があり、理解しやすく維持しやすくなります。
結論
複数のクラスで共有できる一連の機能を設計する機能により、 抽象クラス 開発者にとって便利です。これにより、抽象クラスに加えられた変更は、それを継承するすべてのクラスに自動的に影響するため、コードの再利用が増え、メンテナンスが容易になります。正しく使用すると、 抽象クラス オブジェクト指向プロジェクトのコードの構造と構成を大幅に改善できます。ただし、過度に使用すると、コードが過度に複雑になり、保守が困難になる可能性があるため、慎重に使用することが重要です。