您的位置:首页 > 编程语言 > PHP开发

对php面向对象接口的认识和理解

2012-03-30 00:00 387 查看
我们知道php不支持多重继承,即
class A extends B,C{}这种写法是错误的,那么想要实现多重继承怎么办呢?这是就要用接口(Interface)
实现啦,接口还可以从其他接口继承,并且允许多重实现,看了下面这段脚本你就懂了:

<?php
interface Human{
    function Age($a);  //年龄
}
interface People{
    function Gender($g);  //性别
    function Eat($food);
}
class Chinese implements Human,People{
    public $gender = 'male';

    function Age($a){
        echo "my age is {$a}<br>";
    }
    function Gender($g){
        if ($this->gender == $g){
            echo "我是男生<br>";
        }else{
            echo "我是女生<br>";
        }
    }
    function Eat($food){
        if ($food != 'bread'){
            echo "{$food}不好吃<br>";
        }else{
            echo "我最爱吃面包<br>";
        }
    }
}
$xiaoming = new Chinese();
$xiaoming->Gender('male');
$xiaoming->Age(20);
$xiaoming->Eat('fruit');
?>

运行结果如下:
我是男生
my age is 20
fruit不好吃
最后说说抽象类和接口的区别,主要从下面两个方面来区别:
1.抽象类可能有一些具体方法的定义,但是接口只能定义各个方法界面
2.子类在继承抽象类是,可以不实现其方法,而接口必须实现所有的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: