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 ?>
时间: 2024-08-28 00:59:58

php 类接口继承练习的相关文章

python3 面向对象、类、继承、组合、派生、接口、子类重用父类方法

对象是特征(变量)与技能(函数)的结合体而类是一系列对象共同的特征与技能的集合体 class teacher: lesson = "python" def __init__(self,name,color,age): # 只干初始化的活 self.name = name if not isinstance(name,str): raise TypeError self.color = color self.age = age def jineng(self): print('新技能')

C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义(转载)

C#与Java对比学习:类型判断.类与接口继承.代码规范与编码习惯.常量定义 类型判断符号: C#:object a;  if(a is int) { }  用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 instanceof 符号判断 类与接口的继承: C#:public class MDataRow : List<MDataCell>, IDataRecord, ICustomTypeDescriptor Java:publi

Day17:类的继承、派生、组合和接口

一.类的继承.派生和组合 继承是一种创建新类的方式,在Python中,新类可以继承一个或多个父类,父类又可称为基类或者超类,新建的类称为派生类或子类. 在Python3中,所有类都默认继承object,都是新式类.在Python2中,有经典类和新式类.没有继承object类以及object的子类的类都是经典类. 1.继承 Python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass clas

Python基础(16)_面向对象程序设计(类、继承、派生、组合、接口)

一.面向过程程序设计与面向对象程序设计 面向过程的程序设计:核心是过程,过程就解决问题的步骤,基于该思想设计程序就像是在设计一条流水线,是一种机械式的思维方式 优点:复杂的问题的简单化,流程化 缺点:扩展性差 面向对象的程序设计:核心是对象,对象是特征(变量)与技能(函数)的结合体,是一种上帝式的思维方式 优点:解决了程序的扩展性 缺点:可控性差 二.类和对象 以游戏举例,基于面向对象设计一个款游戏:英雄联盟,每个玩家选一个英雄,每个英雄都有自己的特征和和技能,特征即数据属性,技能即方法属性,特

JAVA-获取实现了指定接口类的所有实现类或继承了指定类的所有子类

实际编程过程中,我们可能遇到这样的问题,就是获取实现了指定接口类的所有实现类. 本工具类就提供了这样的功能.下面是工具类的详细解析: /** * 查找指定路径下面实现指定接口的全部类 * @author longyin * @author 博客地址:http://blog.csdn.net/u010156024 * 如果大家有什么问题或疑问,欢迎留言或评论,谢谢!! */ public class ClassUtil { @SuppressWarnings({ "rawtypes",

PHP类的继承和接口

PHP类的继承的一些语法 -PHP的类只支持单继承,就是每个类最多只能有一个父类或者没有父类. -子类不能继承父类使用private修饰的成员. 修饰符 可访问范围 public 当前类.子类和类外 protected 当前类和子类 private 当前类 类的类型 含义 被final修饰的类 只能实例化不能被继承 被abstract修饰的类 只能被继承不能被实例化 注意: 被final修饰的方法不能被子类重写. -通常要被子类继承的成员都使用protected,其余的尽量使用private,把

Java类集(接口继承的关系)

类集的概念: 类集(Collection)就是一个动态的对象数组,与一般的对象数组不同,类集中的对象内容可以任意扩充. 类集的特性: 这种框架是高性能的 框架必须允许不同类型的类集以相同的方式和高度互操作方式工作 类集必须是容易扩展和/或修改的 Java类集(接口继承的关系)

类的继承 接口interface/implements

 继承: 关键字:extends,使一个类继承并拥有另一个已经存在类的成员属性和方法,被继承的类称为父类或基类,继承类为子类: public:       方法或者属性在任何作用域下都可以访问到,而且是默认的,如果没有为一个属性或方法指定访问修饰符,它将是public.protected:本类和子类可以访问,外部对象不可以调用.private:      只能在本类访问,子类与外部对象都不可能调用.经过private标记的方法或者属性可以在继承类中重新定义,每一个类只能看到它自己定义      

Day29:类的继承、派生、组合和接口

一.类的继承.派生和组合 继承是一种创建新类的方式,在Python中,新类可以继承一个或多个父类,父类又可称为基类或者超类,新建的类称为派生类或子类. 在Python3中,所有类都默认继承object,都是新式类.在Python2中,有经典类和新式类.没有继承object类以及object的子类的类都是经典类. 1.继承 Python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass clas