1 Star 0 Fork 0

现在成为者/PHP面向对象

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
class10.php 929 Bytes
一键复制 编辑 原始数据 按行查看 历史
<?php
date_default_timezone_set("PRC");
/**
* 多态
* 1. 只要某个对象实现了接口(instanceof),就可以直接在对象上调用接口的方法
*/
interface ICanEat {
public function eat($food);
}
// Human类实现了ICanEat接口
class Human implements ICanEat {
// 跟Animal类的实现是不同的
public function eat($food){
echo "Human eating " . $food . "\n";
}
}
// Animal类实现了ICanEat接口
class Animal implements ICanEat {
public function eat($food){
echo "Animal eating " . $food . "\n";
}
}
function eat($obj){
if($obj instanceof ICanEat){
$obj->eat("FOOD"); // 不需要知道到底是Human还是Animal,直接吃就行了
}else{
echo "Can't eat!\n";
}
}
$man = new Human();
$monkey = new Animal();
// 同样的代码,传入接口的不同实现类的时候,表现不同。这就是为什么成为多态的原因。
eat($man);
eat($monkey);
?>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhaofafa/php_objectoriented.git
git@gitee.com:zhaofafa/php_objectoriented.git
zhaofafa
php_objectoriented
PHP面向对象
master

搜索帮助