php笔记(六)PHP类与对象之对象接口

时间:2022-05-01 06:48:41

接口的实现

<?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(){}

}

?>

php笔记(六)PHP类与对象之对象接口