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 类接口继承练习的主要内容,如果未能解决你的问题,请参考以下文章

java 代码片段

PHP接口

Java 使用类,接口实现手机功能-- 练习接口的使用

php学习笔记 面向对象中[接口]与[多态性]的应用

PHP类继承接口继承关系概述

面向对象笔试题练习一