接口
接口使用interface关键字来定义,接口里面只能写没有具体逻辑的方法(这与抽象类不同,抽象类里还可以定义属性,接口是不可以定义属性的)。你可以把接口这样理解:接口表示某些类具有的共同行为,即某些类都能做什么;抽象类表示某些类都是什么类,都属于什么类。看下面的接口定义,例如:
<?php
interface Icreature {
public function grow();
}
class Animal implements Icreature{
public function grow(){
echo "动物的生长,需要吃东西".PHP_EOL;
}
}
class Plant implements Icreature{
public function grow(){
echo "植物的生长,需要进行光合作用".PHP_EOL;
}
}
$dog = new Animal();
$rose = new Plant();
$dog->grow();
$rose->grow();
?>
执行以上语句,输出如下:
动物的生长,需要吃东西
植物的生长,需要进行光合作用
注:定义一个接口,使用interface关键字,后面写接口的名称,然后在大括号里写上可以执行的方法,这个方法没有具体的实现,例如上面定义了一个生物类接口Icreature;接口的名称,最好以大写的I开头,将来一看到以I开头的就表示接口,代码易于理解。接口的具体实现需要使用implements来实现,并要实现接口中的方法(写上具体的接口的方法逻辑),例如以上定义了动物类Animal 实现(implements)了 Icreature接口,并实现了动物类具体的生长方法grow,植物类Plant也一样,只不过,动物类的生长需要吃东西,而植物类的生长需要进行光合作用!