PHP の抽象クラスとインターフェイス
Sheeraz Gul
2023年6月20日
PHP
PHP Class
PHP Interface
このチュートリアルでは、PHP における abstract class と interface の違いを示します。
違いに入る前に、まず、抽象クラスとインターフェースの概念を理解する必要があります。 abstract class と interface の両方の重要なポイントは次のとおりです。
PHP の抽象クラス
抽象クラス は、開発者によって部分的に実装され、少なくとも 1つの抽象メソッド (コードのないメソッド) を含みます。 abstract class を理解するための重要なポイントをいくつか紹介します。
abstract classは部分抽象化されています。抽象クラスで変数を作成できます。- 抽象クラスには、抽象メソッドと非抽象メソッドを含めることができます。
抽象クラスでは任意のアクセス修飾子を使用できます。extendsキーワードを使用して、派生クラスからabstract class機能にアクセスできます。抽象クラスでは多重継承が可能です。
abstract class を作成する方法の例を次に示します。
<?php
abstract class Demo_Abstract_Class {
abstract protected
function Get_Value();
public
function Print_Value() {
print $this -> Get_Value();
}
}
?>
PHP のインターフェース
インターフェイスは interface キーワードによって定義され、すべてのメソッドは抽象的です。 interface を理解するための重要なポイントをいくつか紹介します。
- インターフェースは完全に抽象化されています。
interfaceで変数を作成することはできません。interfaceには抽象メソッドのみが含まれます。interfaceではpublicアクセス修飾子のみが使用されます。implementキーワードを使用して、派生クラスからinterfaceを取得できます。interfacesでは複数の継承が可能です。
interface を示す例を次に示します。
<?php
interface Demo_Interface {
public
function execute();
}
?>
PHP の抽象クラスとインターフェイス
abstract class と interface の違いは次のとおりです。
| 抽象クラス | インターフェース |
|---|---|
| 多重継承なし。 | 複数の継承をサポートします。 |
抽象クラス にはデータ メンバーが含まれています。 |
interface にはデータ メンバーが含まれていません。 |
abstract class はコンテナーをサポートします。 |
interface はコンテナーをサポートしていません。 |
abstract class には、完全メンバーと不完全メンバーが含まれています。 |
interface には、メンバーの署名も参照する完全なメンバーのみが含まれます。 |
abstract class は、サブルーチン、プロパティ、および関数を含むアクセス修飾子を持つことができます。 |
interface では、すべてがパブリックと見なされるため、アクセス修飾子がありません。 |
abstract class の完全なメンバーは静的にすることができますが、不完全なメンバーは静的にすることはできません。 |
interface のどのメンバーも静的にすることはできません。 |
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
著者: Sheeraz Gul
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook