加入收藏 | 设为首页 | 会员中心 | 我要投稿 通辽站长网 (https://www.0475zz.com/)- 图像处理、建站、语音技术、AI行业应用、媒体智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP面向对象开发之类的多态详细讲解

发布时间:2023-10-31 10:31:48 所属栏目:PHP教程 来源:网络
导读:   类的多态



  1.多态的介绍和优势。



  2.运算符:instanceof。



  3.多态的简单应用。



  1.多态的介绍和优势



  介绍:多态性是继承抽象和继承后
  类的多态
 
  1.多态的介绍和优势。
 
  2.运算符:instanceof。
 
  3.多态的简单应用。
 
  1.多态的介绍和优势
 
  介绍:多态性是继承抽象和继承后,面向对象语言的第三特征。
 
  例子:USB接口,插上不同的东西会使用不同的功能。
 
  优势:OOP并不仅仅是把很多函数和功能集合起来,目的而是使用类,继承,多态的方式描述我们生活中的一种情况。

  2.运算符:instanceof
 
  PHP一个类型运算符,用来测定一个给定的对象是否来自指定的对象
 
  格式:
 
   代码如下
 
  1 class A {}
 
              class B {}
 
  2 $thing = new A;
 
              if ($thing instanceof A) {
 
              echo "A";
 
              }
 
              if ($thing instanceof B) {
 
              echo "B";
 
              }
 
  3.多态的简单应用
 
  实例1:
 
   代码如下
 
  1
 
              class A {
 
  2 }
 
  3 class B {
 
  4 }
 
  5 $new = new A;
 
  6 if ($new instanceof A) {
 
              echo "A";
 
              }
 
              if ($new instanceof B) {
 
              echo "B";
 
              }
 
              ?>
 
  实例2:
 
   代码如下
 
  1
 
              interface MyUsb {
 
               function type();
 
               function alert();
 
              }
 
  2 class Zip implements MyUsb {
 
               function type() {
 
                echo "2.0";
 
               }
 
               function alert() {
 
                echo "U盘驱动正在检测……
 
  ";
 
               }
 
              }
 
  3 class Mp3 implements MyUsb {
 
               function type() {
 
                echo "1.0";
 
               }
 
               function alert() {
 
                echo "MP3驱动正在检测……";
 
               }
 
              }
 
  4 class MyPc {
 
               function Add_Usb($what) {
 
                $what->type();
 
                $what->alert();
 
               }
 
  5 }
 
              $p = new MyPc();
 
  6 $zip = new Zip();
 
  7 $mp3 = new Mp3();
 
  8 $p->Add_Usb($zip);
 
              $p->Add_Usb($mp3);
 
              ?>
 
  补充一个实例213.29.11.16更新
 
  /*  父类  */
 
  class MyObject{
 
   public $object_name;         //图书名称
 
   public $object_price;          //图书价格
 
   public $object_num;          //图书数量
 
   public $object_agio;          //图书折扣
 
   function __construct($name,$price,$num,$agio){    //构造函数
 
    $this -> object_name = $name;
 
    $this -> object_price = $price;
 
    $this -> object_num = $num;
 
    $this -> object_agio = $agio;
 
   }
 
   function showMe(){          //输出函数
 
    echo '这句话不会显示。';
 
   }
 
  }
 
  /*  子类Book  */
 
  class Book extends MyObject{         //MyObject的子类。
 
   public $book_type;          //类别
 
   function __construct($type,$num){       //声明构造方法
 
    $this -> book_type = $type;
 
    $this -> object_num = $num;
 
   }
 
   function showMe(){          //重写父类中的showMe方法
 
    return '本次新进'.$this -> book_type.'图书'.$this->object_num.'本
 
  ';
 
   }
 
  }
 
  /*  子类Elec  */
 
  class Elec extends MyObject{         //MyObject的另一个子类
 
   function showMe(){          //重写父类中的showMe方法
 
    return '热卖图书:'.$this -> object_name.'
 
  原价:'.$this -> object_price.'
 
  特价:'.$this -> object_price * $this -> object_agio;
 
   }
 
  }
 
  /*  实例化对象  */
 
  $c_book = new Book('计算机类',1000);       //声明一个Book子类对象
 
  $h_elec = new Elec('PHP函数参考大全',98,3,0.8);     //声明一个Elec子类对象
 
  echo $c_book->showMe()."
 
  ";        //输出Book子类的showMe()方法
 
  echo $h_elec->showMe();         //输出Elec子类的是showMe()方法
 
  ?>
 

(编辑:通辽站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章