PHP インターフェースの多重継承と多重継承を実現する tarits メソッドの効果_php スキル

jacklove
リリース: 2023-04-02 08:34:02
オリジナル
1854 人が閲覧しました

この記事では、PHP インターフェースの多重継承と多重継承効果を実現するタリットの方法を主に紹介し、PHP インターフェースベースの多重継承と、多重継承を実現するために PHP5.4 で導入されたタリットの簡単な操作スキルを分析します。

この記事の例では、PHP インターフェイスの多重継承の方法と、多重継承の効果を実現するための tarit について説明します。参考までに皆さんと共有してください。詳細は次のとおりです。

インターフェースの多重継承

PHP のオブジェクト指向インターフェースでは、インターフェースインターフェイスを継承できます。 PHP クラスは 1 つの親クラスからのみ継承できますが (単一継承)、インターフェイスは多重継承を実装でき、1 つ以上のインターフェイスを継承できます。もちろん、インターフェイスの継承でもクラスの継承と同じように extends キーワードを使用します。複数の継承が必要な場合は、継承したインターフェイスをカンマで区切ってください。

インターフェイスが他のインターフェイスを継承する場合、親インターフェイスの静的定数属性と抽象メソッドを直接継承するため、クラスはインターフェイスの実装時に関連するすべての抽象メソッドを実装する必要があることに注意してください。

#次は例です:

1. 単一のインターフェイスを継承します

#
<?php
interface testA{
  function echostr();
}
interface testB extends testA{
  function dancing($name);
}
class testC implements testB{
  function echostr(){
    echo "接口继承,要实现所有相关抽象方法!";
    echo "<br>";
  }
  function dancing($name){
    echo $name."正在跳舞!";
  }
}
$demo=new testC();
$demo->echostr();
$demo->dancing("模特");
//运行结果
/**
  接口继承,要实现所有相关抽象方法
  模特正在跳舞!
**/
ログイン後にコピー

2. 複数のインターフェースの継承

##

<?php
interface testA{
  function echostr();
}
interface testB{
  function dancing($name);
}
interface testC extends testA,testB{
  function singing($nickname);
}
class testD implements testC{
  function echostr(){
    echo "接口继承,要实现父接口所有相关方法!";
    echo "<br />";
  }
  function dancing($name){
    echo $name."正在跳舞!";
    echo "<br />";
  }
  function singing($nickname){
    echo $nickname."正在唱歌!";
  }
}
$demo=new testD();
$demo->echostr();
$demo->dancing("模特");
$demo->singing("周杰伦");
//运行结果
/**
  接口继承,要实现父接口所有相关方法!
  模特正在跳舞!
  周杰伦正在唱歌!
**/
ログイン後にコピー

##tarits多重継承

多重継承では、クラスは同時に複数の親クラスを継承できます。C の複数の親クラスを結合する機能は、統合の柔軟性を高めるためにこのモデルを使用します。しかし、多重継承は柔軟性が高すぎて、「ダイヤモンド継承」を引き起こします。そのため、使用には多くの困難があり、モデルはより複雑になりました。現在、ほとんどの言語は多重継承モデルを放棄しています。 しかし、時々多重継承を使いたいことがありますが、PHP には多重継承がないので、このようなものを発明しました。 トレイトは、さまざまなクラスから呼び出すことができるメソッドのセットとして理解できますが、トレイトはクラスではありません。インスタンス化できません。例を挙げて構文を見てみましょう:


<?php
trait myTrait{
  function traitMethod1(){}
  function traitMethod2(){}
}
//然后是调用这个traits,语法为:
class myClass{
  use myTrait;
}
//这样就可以通过use myTraits,调用Traits中的方法了,比如:
$obj = new myClass();
$obj-> traitMethod1 ();
$obj-> traitMethod2 (); 
>
ログイン後にコピー

具体的な導入と使用法については、公式の導入を参照してください。

#興味があるかもしれない記事:

thinkPHP5 フレームワーク データベースのコヒーレント操作のキャッシュ() の使用法の詳細な説明

thinkPHP3.2 ページングカスタムスタイルの実装方法の解説

#Laravel フレームワーク Blob で実装された複数画像アップロード機能の解析例


#

以上がPHP インターフェースの多重継承と多重継承を実現する tarits メソッドの効果_php スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート