PHP の抽象クラスとインターフェイス

Sheeraz Gul 2023年6月20日
  1. PHP の抽象クラス
  2. PHP のインターフェース
  3. PHP の抽象クラスとインターフェイス
PHP の抽象クラスとインターフェイス

このチュートリアルでは、PHP における abstract classinterface の違いを示します。

違いに入る前に、まず、抽象クラスインターフェースの概念を理解する必要があります。 abstract classinterface の両方の重要なポイントは次のとおりです。

PHP の抽象クラス

抽象クラス は、開発者によって部分的に実装され、少なくとも 1つの抽象メソッド (コードのないメソッド) を含みます。 abstract class を理解するための重要なポイントをいくつか紹介します。

  1. abstract class は部分抽象化されています。
  2. 抽象クラス で変数を作成できます。
  3. 抽象クラスには、抽象メソッドと非抽象メソッドを含めることができます。
  4. 抽象クラス では任意のアクセス修飾子を使用できます。
  5. extends キーワードを使用して、派生クラスから abstract class 機能にアクセスできます。
  6. 抽象クラス では多重継承が可能です。

abstract class を作成する方法の例を次に示します。

<?php
abstract class Demo_Abstract_Class {
    abstract protected
    function Get_Value();
    public
    function Print_Value() {
        print $this -> Get_Value();
    }
}
?>

PHP のインターフェース

インターフェイスは interface キーワードによって定義され、すべてのメソッドは抽象的です。 interface を理解するための重要なポイントをいくつか紹介します。

  1. インターフェースは完全に抽象化されています。
  2. interface で変数を作成することはできません。
  3. interface には抽象メソッドのみが含まれます。
  4. interface では public アクセス修飾子のみが使用されます。
  5. implement キーワードを使用して、派生クラスから interface を取得できます。
  6. interfaces では複数の継承が可能です。

interface を示す例を次に示します。

<?php
interface Demo_Interface {
    public
    function execute();
}
?>

PHP の抽象クラスとインターフェイス

abstract classinterface の違いは次のとおりです。

抽象クラス インターフェース
多重継承なし。 複数の継承をサポートします。
抽象クラス にはデータ メンバーが含まれています。 interface にはデータ メンバーが含まれていません。
abstract class はコンテナーをサポートします。 interface はコンテナーをサポートしていません。
abstract class には、完全メンバーと不完全メンバーが含まれています。 interface には、メンバーの署名も参照する完全なメンバーのみが含まれます。
abstract class は、サブルーチン、プロパティ、および関数を含むアクセス修飾子を持つことができます。 interface では、すべてがパブリックと見なされるため、アクセス修飾子がありません。
abstract class の完全なメンバーは静的にすることができますが、不完全なメンバーは静的にすることはできません。 interface のどのメンバーも静的にすることはできません。
著者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

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

関連記事 - PHP Class