php 类接口继承练习
Posted HI IT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 类接口继承练习相关的知识,希望对你有一定的参考价值。
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 类接口继承练习的主要内容,如果未能解决你的问题,请参考以下文章