php笔记(六)PHP类与对象之对象接口
接口的实现
<?php //interface 关键字用于定义一个接口 interface ICanEat{ //接口里面的方法不需要实现 public function eat($food); } //implements关键字用于类实现某个接口 class Human implements ICanEat{ //实现了接口后,必须提供接口中方法的具体实现 public function eat($food){ echo "Human eating".$food; } } ?>
那么这一通定义之后
通过实例化对象
$peroson1=new Human();
$person1->eat('apple');
输出的结果就是
Human eating apple
<?php //interface 关键字用于定义一个接口 interface ICanEat{ //接口里面的方法不需要实现 public function eat($food); } //implements关键字用于类实现某个接口 class Human implements ICanEat{ //实现了接口后,必须提供接口中方法的具体实现 public function eat($food){ echo "Human eating".$food."\n"; } } $person1 = new Human(); $person1->eat('apple'); //我们可以通过instanceof关键字来判断对象是否实现了某个接口 var_dump($person1 instanceof ICanEat); //在上面的例子中我们可以通过这个关键字来判断是否实现了ICanEat这个接口 ?>
那么输出结果应该是
Human eating apple
Bool (true)
<?php
//interface 关键字用于定义一个接口
interface ICanEat{
//接口里面的方法不需要实现
public function eat($food);
}
//implements关键字用于类实现某个接口
class Human implements ICanEat{
//实现了接口后,必须提供接口中方法的具体实现
public function eat($food){
echo "Human eating".$food."\n";
}
}
$person1 = new Human();
$person1->eat('apple');
//我们可以通过instanceof关键字来判断对象是否实现了某个接口
var_dump($person1 instanceof ICanEat);
//在上面的例子中我们可以通过这个关键字来判断是否实现了ICanEat这个接口
//类可以继承,那么接口同样也能被继承
interface ICanSleep extends ICanEat{
public function sleep();
}
//当类实现子接口,那么父接口定义的方法也需要在类中来具体实现
class Human1 implements ICanSleep{
public function eat($food){}
public function sleep(){}
}
?>
[gitHub]: https://github.com/MicahZJ
[博客]: https://micahzj.github.io/MicahZJ.github.io/
[掘金]: https://juejin.im/user/5c1355ebe51d4521030cfe84/posts/
有关问题,或者想和本人讨论
欢迎通过本人QQ872219020联系
或者在github上提issues,虽然我不一定会去看o