ホームページ  >  記事  >  バックエンド開発  >  php オブジェクト指向 OOP - インターフェイス インターフェイス

php オブジェクト指向 OOP - インターフェイス インターフェイス

WBOY
WBOYオリジナル
2016-08-08 09:23:08886ブラウズ

PHP は、ほとんどのオブジェクト指向プログラミング言語と同様、多重継承をサポートしていません。つまり、各クラスは 1 つの親クラスからのみ継承できます。この問題を解決するために、PHP はインターフェイスを導入しました。インターフェイスの考え方は、インターフェイスを実装するクラスが実装する必要がある一連のメソッドを指定することです。インターフェイスは特殊な抽象クラスであり、抽象クラスは特殊なクラスであるため、インターフェイスも特殊なクラスであると言えるのはなぜですか。抽象クラス内のすべてのメソッドが抽象メソッドである場合、別の宣言メソッドで「インターフェイス」を使用します。つまり、インターフェイス内のすべてのメソッドを抽象メソッドとして宣言する必要があり、インターフェイス内で変数を宣言することはできません。定数を宣言できます)、インターフェイス内のすべてのメンバーはパブリック権限を持ちます。したがって、サブクラスが実装されると、 また、必ずパブリック権限を使用してください。

クラスを宣言するときに使用するキーワードは「class」であり、インターフェースは特別なクラスであり、使用されるキーワードは「interface」です。

クラスの定義: class クラス名 { … }、
インターフェース宣言: インターフェイス インターフェイス名 {…}

//インターフェイス キーワードを使用してインターフェイスを定義します。「One」はインターフェイス名です
interface One
{
//定数を定義します
const constant = '定数値';
//抽象メソッド「fun1」が定義されています
public function fun1();
//抽象メソッド「fun2」が定義されています
public function fun2( );
}
?>

上記の例では、インターフェイス「one」が定義されており、2 つの抽象メソッド「fun1」と「fun2」を宣言しています。すべての抽象メソッドを宣言するため、抽象クラスのように "abstract" キーワードを使用する必要はありません。また、このキーワードはインターフェイスに "public" アクセス許可を付与することもできます。は削除されました。デフォルトはパブリックであり、インターフェイス内のすべてのメンバーはパブリックである必要があるため、インターフェイス内のメンバーに対して「プライベート」および「保護された」権限を使用することはできず、パブリックまたはデフォルトを使用する必要があります。また、インターフェイス内で定数「constant」も宣言しました。インターフェイス内では変数メンバーが使用できないため、使用する必要があります。 const キーワード宣言。

インターフェイスは特別な抽象クラスであり、その中のすべてのメソッドは抽象メソッドであるため、インターフェイスはインスタンス オブジェクトを生成できません。これは仕様でもあり、すべての抽象メソッドはサブクラスによって実装される必要があります。

extends」キーワードを使用して、あるインターフェースが別のインターフェースを継承できるようにすることができます:

//Use "extends" で別のインターフェースを継承します
interface Two extends One
{
function fun3();
function fun4();
}
?>

インターフェース内のすべての抽象メソッドを実装するインターフェースのサブクラスを定義するときに使用するキーワードは、です。 前に述べたように「extends」の代わりに「implements」;

//キーワード「implements」を使用して、インターフェイスとクラスに抽象メソッドインターフェイスを実装します3 つの実装は One
{

function fun1() {
...
}
function fun2() {
...
}}
//すべてのメソッドが実装されている、サブクラスを使用してオブジェクトをインスタンス化できます
$three=new Three();
?>

また、抽象クラスを使用してインターフェイスにいくつかの抽象メソッドを実装することもできます。ただし、オブジェクトをインスタンス化するには、この抽象クラスにすべての抽象メソッドを実装するためのサブクラスが必要です

前に述べたように、PHP は単一継承であり、クラスは親クラスを 1 つだけ持つことができますが、クラスは複数のインターフェイスを実装できます。これは、学校にいる場合、国の法律を遵守するだけでなく、学校の法律も遵守しなければならないのと同じです

< ;?php

//実装を使用して複数のインターフェイスを実装します
class 4 つの実装はインターフェイス 1、インターフェイス 2、...
{

//インターフェイス内のすべてのメソッドは、オブジェクトをインスタンス化する前に実装する必要があります。 }
?>

PHP では、1 つのクラスだけでなく、クラスを継承しながら複数のインターフェースを実装することもできます。

//extendsを使用してクラスを継承し、implementsを使用して複数のインターフェースを実装しますclass Four extends class name oneimplementtnsインターフェース1、インターフェース2、...
{


// オブジェクトをインスタンス化する前に、インターフェイス内のすべてのメソッドを実装する必要があります
...}?>


上記の内容は、「

揚げたピーナッツ」から引用しています お兄さん、シェアにご協力いただきありがとうございます。

上記は、PHP のオブジェクト指向 OOP インターフェイス インターフェイスを内容の側面も含めて紹介したもので、PHP チュートリアルに興味のある友人に役立つことを願っています。

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