ホームページ  >  記事  >  バックエンド開発  >  PHP インターフェースの多重継承と tarits は多重継承のサンプル共有を実装します。

PHP インターフェースの多重継承と tarits は多重継承のサンプル共有を実装します。

小云云
小云云オリジナル
2018-01-11 10:47:141660ブラウズ

この記事では、PHP インターフェースの多重継承と多重継承効果を実現するタリットの方法を主に紹介し、PHP インターフェースベースの多重継承と、多重継承機能を実現するために PHP5.4 で導入されたタリットの簡単な操作テクニックを分析します。困っている友達の参考にしていただければ幸いです。

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

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("周杰伦");
//运行结果
/**
  接口继承,要实现父接口所有相关方法!
  模特正在跳舞!
  周杰伦正在唱歌!
**/

複数のクラスのうち 1 つのクラスC++では統合の柔軟性を高めるために、複数の親クラスを同時に継承したり、複数の親クラスを結合したりする機能が使われていますが、多重継承は柔軟性が高すぎて「ダイヤモンド継承」を引き起こすため、多くの問題があります。使用が難しくなり、モデルはより複雑になり、現在ではほとんどの言語が多重継承モデルを放棄しています。

でも時々多重継承を使いたいことがありますが、PHPには多重継承がないので、そのようなものを発明しました。


トレイトは、さまざまなクラスから呼び出すことができるメソッドのセットとして理解できますが、トレイトはクラスではありません。インスタンス化できません。最初に構文を見てみましょう:

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

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

関連する推奨事項:

インターフェース継承とインターフェース多重継承原則を実装するためのphpメソッド

PHPで事前定義された6種類のインターフェース分析

phpは、インターフェースと組み合わせを使用して多重継承をシミュレートします_PHPチュートリアル

以上がPHP インターフェースの多重継承と tarits は多重継承のサンプル共有を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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