课程名称:PHP面向对象编程
课程章节:
4-6 对象接口-php面向对象编程
4-7 多态-php面向对象编程
课程链接
主讲老师:Peter
课程内容
学习到了PHP中的接口类,定义与实现的方式,是为了解决PHP类单继承的特性。接口的实现是多种多样的,这种特性我们称之为多态。
课程收获
一、对象接口
定义
使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
特点
接口通过“interface” 关键词来定义
接口可以通过“extends”关键词继承
接口不能实例化
接口所有方法都是“public”权限
接口可以定义常量成员,但不能定义变量成员
类通过“implements”关键词来实现接口,类必须完全实现接口定义的所有功能
类的方法必须有实现,接口的方法必须为空
一个类可以同时“implements”(实现)一个到多个接口
为什么需要接口
PHP 类是单继承,也就是不支持多继承,当一个类需要多个类的功能时,继承就无能为力了,为此 PHP 引入了类的接口技术
代码实现
interface ICanEat
{
public function eat($food);
}
interface ICanPee extends ICanEat
{
public function pee();
}
class Human implements ICanEat
{
public function eat($food)
{
echo "Human eating ".$food."\n";
}
}
class Animal implements ICanEat
{
public function eat($food)
{
echo "Animal eating ".$food."\n";
}
}
class Human1 implements ICanPee
{
public function eat($food)
{
}
public function pee()
{
}
}
$obj = new Human();
$obj->eat('Apple');
$obj = new Animal();
$obj->eat('Banana');
// 不能 实例化接口
// $eatObj = new ICanEat();
// 可以用instanceof关键字来判断某个对象是否实现了某个接口
var_dump($obj instanceof ICanEat);
热门评论
very nice