PHPでのimplementの使用例の共有

黄舟
リリース: 2023-03-10 18:50:01
オリジナル
1554 人が閲覧しました

PHP クラスのインターフェイスのアプリケーション キーワードは、インターフェイスと実装です。インターフェイスは、すべて抽象または定数の特殊な抽象クラスを指します。 all パラメータを渡すことは、抽象クラスに似た制約と仕様として機能します。

クラスへのインターフェースの応用

1. キーワード: インターフェース

2. キーワード: 実装

1. インターフェースの導入と作成

インターフェース: すべて抽象または定数のメンバー属性の一種。抽象クラス。

ルール:

1. クラス内のすべてのメソッドは抽象です。

2. 抽象メソッドには抽象を追加する必要はありません。

3. インターフェースの抽象メソッド属性は public です。

4. メンバー属性は定数である必要があります。

フォーマットコードは次のとおりです:

interface demo { const NAME = "常量对象属性"; function myfun1(); //抽象方法function myfun2(); //抽象方法,不用具体写入逻辑 }
ログイン後にコピー

1. インターフェースの定義と呼び出し

"; } }$face = new Order();echo $face->show(); echo Cinema::film;
ログイン後にコピー
注: 上記の例で注意すべき点の 1 つは、

インターフェースのメソッド名が show

であることです。これは、インターフェイスを継承するThis メソッドに含める必要があります。そうでない場合は、エラーが報告されます。言い換えれば、インターフェイスのメソッドは偽物であり、実際に機能するのは継承されたクラスのメソッドです。ここでのインターフェイスは PHP の抽象クラスに少し似ていますか?第二に、パラメーターの制約が厳密です
説明: 上記の例はインターフェイス クラスを継承します。インターフェイス メソッドを呼び出すとき、渡されるパラメーターはインターフェイス内のパラメーター名と一致している必要があります。それ以外の場合は、エラーが報告されます。

3、インターフェース間の継承とインターフェースの呼び出しによるパラメータの受け渡し

number.$num; } }$face= new Order();$face->show(new Order,$num='3人');//输出 0011排3人
ログイン後にコピー
説明: 上記の例から、インターフェース Cinema1 がインターフェース Cinemal を継承し、クラス Order がインターフェース Cinema1 を継承していることがわかります。 Order クラスに 2 つのメソッドが含まれていることに気づいたかどうかはわかりませんが、1 つは show で、もう 1 つは show1 です。どちらかが欠けていると、致命的なエラーが報告されます。 show1(Order1

$object,$num) の Order

1はクラス Order1と同じ名前でなければなりません。それらが異なる場合、致命的なエラーが報告されます。では、インターフェイスが複数のクラスに継承されており、クラス名が異なる場合はどうすればよいでしょうか?次に、以下で説明する self を使用する必要があります4、1 つのインターフェースには複数の継承があります

"; } public function show1(Order1 $object,$num) { //var_dump($object); echo $object->number."$num
"; } }class Order1 { public $number="0012排"; function fun(){ echo ' ================='; } }$show = new Order1;$show->fun(); $test = new Order();$test->show(); $test->show1($show,$num='6人');// 输出 ===============准备就绪0012排6人
ログイン後にコピー
上記の出力
"; } function fun4() { echo "大家都好
"; } } class YourDemo extends MyDemo implements demo3 { function fun5() { echo "继承类后引用接口"; } } $p = new YourDemo; $p->fun1(); $p->fun2(); $p->fun3(); $p->fun4(); $p->fun5();
ログイン後にコピー

上記の例では、キーワードインターフェースを使用してインターフェースが定義されていることがわかります。別の例:

你好----------我也好 大家都好 继承类后引用接口
ログイン後にコピー

この例は、PHP インターフェースの単純なアプリケーションを示しています。この例では、ユーザー インターフェイスはユーザーの割引を実装し、VipUser クラスは特定の割引係数を実装します。最後に、製品カテゴリ「Goods」は、ユーザー インターフェイスに基づいてさまざまなユーザー引用を実装します。

最後に要約します:

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

インターフェイスは特別な抽象クラスであり、仕様とみなすこともできますモデルの。インターフェイスと抽象クラスの一般的な違いは次のとおりです。

1. サブクラスがインターフェイスを実装する場合、必要かどうかに関係なく、インターフェイス内のすべてのメソッドを実装する必要があります。必要なメソッドを実装します。

2. インターフェイスで定義されたメソッド名が変更された場合、このインターフェイスを実装するすべてのサブクラスはメソッド名を同期的に更新する必要があり、抽象クラスのメソッド名が変更された場合、そのサブクラスの対応するメソッド名は変更されません。影響を受けます。(古いメソッドの実装と比較して) 新しいメソッドになるだけです。

3. 抽象クラスは単一でのみ継承できます。サブクラスが複数の親クラスから継承する必要がある関数を実装する必要がある場合は、インターフェイスを使用する必要があります。

以上がPHPでのimplementの使用例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!