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