ホームページ >バックエンド開発 >PHPチュートリアル >PHPでオブジェクト指向ポリモーフィズム手法を実装した事例

PHPでオブジェクト指向ポリモーフィズム手法を実装した事例

黄舟
黄舟オリジナル
2017-09-28 09:02:511384ブラウズ

この記事では主に、PHP でのオブジェクト指向ポリモーフィズムの実装方法を紹介します。オブジェクト指向ポリモーフィズムの原理を簡単に説明し、具体的な例を組み合わせて、PHP でポリモーフィズムを実装するための関連操作スキルを提供します。この記事の例では、PHP でのオブジェクト指向ポリモーフィック実装方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

ポリモーフィズム:

親クラスの参照は子クラスのオブジェクトを指します (オブジェクト指向では、クラスを使用するコンテキストに応じて再定義または再定義できます) (異なる入力クラスを使用して異なるクラスのメソッドを呼び出す)) クラスの性質と動作を変更します。 ); インターフェイス参照は、インターフェイスを実装するクラス オブジェクトを指します。

オブジェクト指向: データ (属性)、データを操作するメソッド、およびロジックをクラスに形成し、クラスを抽象化してオブジェクトを形成し、オブジェクトを通じてそのクラスを使用します。

<?php
class work{
  function polymorphic($obj){
    //检查是否引用类型(obj是否继承animal类)
    if($obj instanceof animal){
      $obj -> fun();
    }
    else{
      echo "no function";
    }
  }
  //如果需要指定类 (指定cat类,包含cat子类)
  function bose(cat $obj){
    $obj->fun();
  }
}
//抽象类
 abstract class animal{
  abstract function fun();
}
//cat猫类
class cat extends animal{
  function fun(){
    echo "cat say miaomiao...";
  }
}
//dog狗类
class dog extends animal{
  function fun(){
    echo "dog say wangwang...";
  }
}
class mouse extends cat{
}
//先new一个work类
$new_work = new work();
//然后通过new_work对象 调用 polymorphic 方法,传入不同的类实现 父类引用指向子类对象;接口引用指向实现接口的类对象(多态)。
$new_work->polymorphic(new cat());
echo &#39;<br/>&#39;;
$new_work->polymorphic(new dog());
echo &#39;<br/>&#39;;
//指定类方式仿java
$new_work->bose(new cat());
echo &#39;<br/>&#39;;
//如果传输其他类,或者未继承cat类则会报错
//$new_work->bose(new dog());
echo &#39;<br />&#39;;
//这也不会报错
$new_work->bose(new mouse());

実行結果:

りー

以上がPHPでオブジェクト指向ポリモーフィズム手法を実装した事例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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