接口类的目的:一个子类只能继承一个父类,但不能继承多个父类,而接口可以解决这个问题。
1.接口中不需要使用abstract关键字来修饰,默认就是抽象方法。
2.接口中所有的属性都必须是常量(很少在接口中使用属性)。
3.接口中所有的方法都是抽象方法,不能存在非抽象方法(与抽象类的区别)。
eg:
定义接口:
interface Animal
{
function run();
function eat();
function sing();
function play();
}
定义类:接入Animal接口,此时Cat类必须包含Animal的所有方法,否则会报错。
class Cat implements Animal
{
public $name;
//抽象方法run
public function run(){
echo "猫{$this->name}会跑<br>";
}
//抽象方法eat
public function eat(){
echo "猫{$this->name}会吃<br>";
}
//抽象方法eat
public function sing(){
echo "猫{$this->name}会唱歌<br>";
}
public function play(){
echo "猫{$this->name}会抓老鼠<br>";
}
}
通过类来实例化
$cat = new Cat("喵喵");
$cat->play;