接口的实现
<?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(){}
}
?>