一个实例来说明继承与实现
一个猴子一生下来就继承了父亲的爬树功能,但是它又想像鸟一样可以飞,像鱼一样可以在水里游。所以
它就必须实现这两种动物的功能。
用代码表示
<?php
/********实现与继承的比较********/
class Monkey{
public $name;
public $age;
public function climbing($name){
$this->name=$name;
echo $this->name."会爬树";
}
}
interface bird{
public function fly();
}
interface fish{
public function swim();
}
class LittleMonkey extends Monkey implements bird,fish{
function __construct($name){
$this->climbing($name);//调用父类方法
}
function fly(){
echo "会飞";
}
function swim(){
echo "会游";
}
}
/**
一个猴子一生下来就继承了父亲的爬树功能,但是它又想像鸟一样可以飞,像鱼一样可以在水里游。所以
它就必须实现这两种动物的功能。
**/
$test=new LittleMonkey("孙悟空");
$test->fly();
$test->swim();
?>
比较:
1.可以认为实现接口是对单一接口的功能补充
2.可以在不破坏类层级关系的情况下,对某个类进行扩展
final关键字(php5新增的,php4没有)
1.如果方法是final的,那么这个方法就不能被子类覆盖
2.如果一个类是final的,那么该类就不能被继承
3.在php中只有类和方法才能被定义成final的
php5.3的常量定义
语法:const 常量名=值;
访问:类名::常量名;接口名::常量名;
常量要大写,而且名字前面没有$