码迷,mamicode.com
首页 > Web开发 > 详细

php 类接口继承练习

时间:2016-07-06 10:17:52      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

  1 <?php
  2 /**
  3 * @hypo
  4  接口的特性:接口中定义的所有方法都必须是public 
  5  接口的实现:一个接口可以使用implements操作符,类中必须实现接口中的所有方法,否则会报fatal错误,如果要实现多个接口,可以使用逗号来分隔多个接口的名称。
  6 */
  7 header("Content-type:text/html;charset=utf-8");
  8 interface iTemplate  
  9 {  
 10     public function setVariable($name, $var);  
 11     public function getHtml($template);  
 12 }  
 13 class Template implements iTemplate  
 14 {  
 15     private $vars = array();  
 16     
 17     public function setVariable($name, $var)  
 18     {  
 19         $this->vars[$name] = $var;  
 20     }  
 21     
 22     public function getHtml($template)  
 23     {  
 24         foreach($this->vars as $name => $value) {  
 25             echo "\n".$name."\n".$value."<br>";
 26         }  
 27    
 28      
 29     }  
 30 }
 31 // $t=new Template();
 32 // $t->setVariable("ji","100");
 33 // $t->setVariable("ji2","200");
 34 // $t->getHtml(‘aa‘);
 35 ?>
 36 <?php
 37 //定义一接口,实现价格折扣
 38 interface zk{
 39     public function jiage();//价格
 40     public function user_s();//用户
 41 }
 42 class ordUser implements zk{//普通用户.必须实现接口所有
 43     private $zkl="0.97";
 44     function jiage(){
 45         return $this->zkl;
 46     }
 47     function user_s(){
 48         return ‘普通用户‘;
 49     }
 50 }
 51 
 52 class vipUser implements zk{//VIP用户.必须实现接口所有
 53     private $zkl="0.91";//折扣
 54     function jiage(){
 55         return $this->zkl;
 56     }
 57     function user_s(){
 58         return ‘vip用户‘;
 59     }
 60 }
 61 
 62 class svipUser implements zk{//超级vip用户.必须实现接口所有
 63     private $zkl="0.88";
 64     function jiage(){
 65         return $this->zkl;
 66     }
 67     function user_s(){
 68         return ‘svip用户‘;
 69     }
 70 }
 71 class run{//价格折扣计算
 72     var $yjg;
 73     var $us;
 74     function buy($yjg,zk $us){//zk接口名,可以去掉没影响
 75         $this->yjg=$yjg;
 76         $this->us=$us;
 77         $zjg=$this->us->jiage();
 78         $user=$this->us->user_s();
 79         echo $user.‘:原价格‘.$yjg.‘,现价格‘.$zjg*$yjg."<br>";
 80 
 81     }
 82 
 83 }
 84 
 85 class hdPrc extends run{//继承run 显示不同用户价格
 86     function sp($hd){
 87         $this->buy(active::showActivePrc($hd),new ordUser);
 88         $this->buy(active::showActivePrc($hd),new vipUser);
 89         $this->buy(active::showActivePrc($hd),new svipUser);
 90     }
 91     
 92 }
 93 class active{//静态活动价格添加,显示,器
 94     public static $aName;
 95     public static $aPrc;
 96     public static function addActive($aNam,$aPr){
 97          self::$aName[$aNam]=$aPr;        
 98     }    
 99     public static function showActivePrc($aNam){
100         return  self::$aName[$aNam];
101     }
102 }
103 
104 active::addActive("电影活动","111");
105 active::addActive("音乐活动","1122");
106 
107 // $t=new run;
108 // $t->buy(active::showActivePrc("音乐活动"),new ordUser);
109 // $t->buy(‘111‘,new vipUser);
110 // $t->buy(‘111‘,new svipUser);
111 $b=new hdPrc;
112 $b-> sp(‘音乐活动‘);
113 ?>

 

php 类接口继承练习

标签:

原文地址:http://www.cnblogs.com/hiit/p/5645756.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!