PHP自学之路-----接口VS继承、final、const
2013-05-22 21:08
525 查看
1、实现接口VS继承类
PHP的继承是单继承,也就是说一个类只能继承一个类 ,这种单继承模式保证了类的纯洁性,比C++中的多继承类机制简洁。但是不可否认,对于类的扩展有一定的影响,所以我们认为:
1) 实现接口可以看作是对继承的一种补充,还有一点,继承 是层级式的,不太灵活,及一个类可以层级式的继承。实现阶梯状,但是主要父类有错误会被一个一个的继承下来,这样对于代码的高内聚低耦合来说不是最优的
2)实现接口可以在不打破关系的前提下,对某个功能扩展,非常灵活
看下面的代码:
<?php class Monkey{ public $age; public $name; public function climbing(){ echo "猴子会爬树。。"; } } interface Bridable{ public function fly(); } interface iFishable{ public function swimming(); } //一个类最多能继承一个父类,可以有多个接口,对子类进行扩展 class littleMonkey extends Monkey implements Bridable , iFishable{ public function fly(){ echo "猴子会飞。。。"; } public function swimming(){ echo "猴子会游泳。。。"; } } $littleMonkey1=new littleMonkey(); $littleMonkey1->fly(); $littleMonkey1->swimming(); $littleMonkey1->climbing(); ?>
2、final关键字,
final什么时候用
1) 因为安全的考虑,类的某个方法不允许被修改。可以用final修饰。
2)不希望某个类被其他的类继承
特别说明:final 不能修改成员属性(变量)。
3、const 概念
1) 当一个成员的变量不允许被修改的时,可以用const 去修饰这个成员变量
基本用法:const 常量名=值;
访问: 类名::常量名 或者 接口名::常量名
注意:常量名应该大写,并且前面不要有$符号,并且定义时必须赋初始值。
<?php class A{ const TAX_RATE=0.08; public function payTax($val){ return $val*A::TAX_RATE; // 另外也可以 slef::TAX_RATE 『OK』 } } $a=new A(); echo $a->payTax(100); ?>
相关文章推荐
- PHP自学之路-----接口方法
- php继承与实现作比较 还有 final 、const的讲解
- php关键字:final self static const
- php源码之路第五章第四节 (类的继承,多态及抽象类)
- 黑马程序员 Java基础 面向对象:继承、final关键字、抽象类、模版方法模式、接口、多态、Object类
- PHP---继承和接口
- PHP自学之路-------文件下载
- PHP 继承与实现比较 final和const修饰符说明
- 继承+关键字(static+const+instanceof+final+)+protected
- PHP自学之路---报表及绘图技术
- PHP自学之路-----PHP基础数据类型及运算符介绍
- PHP自学之路-----走进位运算
- Java基础——继承+子父类相关特点+Final关键字+抽象类+模板方法设计模式+接口
- php入门学习-----const&static&final关键字
- day07继承, final修饰 ,抽象类,接口
- JAVA 构造器,extends[继承],implements[实现],Interface[接口],reflect[反射],clone[克隆],final,static,abstract[抽象]
- PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门
- PHP接口继承及接口多继承详解
- 韩顺平php视频笔记77 抽象类vs接口 关键字final const