天天看點

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

}

?>

php中接口定義的關鍵詞,php類與對象接口定義介紹和用法執行個體詳解