多态和类的高级使用技巧
多态(使用方式):
对于同一个方法,传入不同对象,实现了不同的效果,这个就是多态的意思,需要使用的技术:继承
或实现,方法的覆盖(重写)。
1 <?php 2 //多态应用(接入模式的实现) 3 //定义一个接口,这是对外开放的接口,必须按照我的方法实现。 4 interface PCI{ 5 public function start(); 6 public function stop(); 7 } 8 //定义一个主板类,这是主板生产商的内部源码,不会公布 9 class MainBoard{ 10 //运行插在主板上pci设备。 11 public function running(PCI $pci){ 12 $pci->start(); 13 $pci->stop(); 14 } 15 } 16 //========声卡厂家========== 17 class SoundCard implements PCI{ 18 public function start(){ 19 echo "声卡启动...<br/>"; 20 } 21 public function stop(){ 22 echo "声卡停用...<br/>"; 23 } 24 } 25 //========网卡厂家========== 26 class NetworkCard implements PCI{ 27 public function start(){ 28 echo "网卡启动...<br/>"; 29 } 30 public function stop(){ 31 echo "网卡停用...<br/>"; 32 } 33 } 34 //========显卡厂家========== 35 class DisplayCard implements PCI{ 36 public function start(){ 37 echo "显卡启动...<br/>"; 38 } 39 public function stop(){ 40 echo "显卡停用...<br/>"; 41 } 42 } 43 //==========系统=============== 44 $mb = new MainBoard(); 45 $sc = new SoundCard(); 46 $nc = new NetworkCard(); 47 $dc = new DisplayCard(); 48 $mb->running($sc); 49 $mb->running($nc); 50 $mb->running($dc);
类的高级使用技巧
1 <?php 2 //类的高级使用技巧 3 class A{ 4 public $num=0; 5 public function fun($s){ 6 echo $s; 7 return $this; 8 } 9 10 public function add($m){ 11 $this->num+=$m; 12 return $this; 13 } 14 } 15 $a = new A(); 16 /* 17 $a->fun("aaaaa"); 18 $a->fun("bbbbb"); 19 $a->fun("ccccc"); 20 */ 21 //连续调用 22 $a->fun("aaaaaa")->fun("bbbbbb")->fun("ccccccc"); 23 //连续调用 24 echo $a->add(10)->add(20)->add(30)->num;

浙公网安备 33010602011771号