php继承与实现作比较 还有 final 、const的讲解

一个实例来说明继承与实现

一个猴子一生下来就继承了父亲的爬树功能,但是它又想像鸟一样可以飞,像鱼一样可以在水里游。所以

它就必须实现这两种动物的功能。

用代码表示

<?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 常量名=值;

    访问:类名::常量名;接口名::常量名;

    常量要大写,而且名字前面没有$

 

原文地址:https://www.cnblogs.com/tangyue/p/3761576.html