接口技术
为什么需要接口
PHP只支持单继承,只能从一个父类继承功能;如果想要从多个类继承功能,就需要用接口技术来实现;接口技术也是子类中方法的命名规范。
接口就是特殊的抽象类。
接口定义的实现要点
关键词interface ,用来声明一个接口,接口也是一个特殊的类。
关键词implements,创建一个子类,来实现接口
同类的东西,使用extends继承,不同类的东西,使用implements实现
例如:子类继承父类,接口继承接口,类实现接口。
接口中只有两种元素:类常量、抽象方法。接口中的方法默认都是抽象方法,因此不加abstract
接口中方法权限必须是public;抽象类中方法可以是protected,也可以是private(尽管私有后不能继承,但可以设置)
接口中方法可以使成员方法,也可以是静态方法;抽象类中只能是成员方法。
接口中所有的方法在子类中必须重写
接口应用
<?php
//定义小灵通的接口
interface XiaoLingTong{
//打电话
public function getTel();
}
//定义MP3的接口
interface MP3{
//听音乐
public function getMusic();
}
//定义MP4的接口
interface MP4 extends MP3{
//看电影
public function getMovie();
}
//定义智能手机类,实现多个接口
class Mobile implements XiaoLingTong,MP4{
//重写getTel
public function getTel(){
echo '打电话';
}
//重写getMusic
public function getMusic(){
echo '听音乐';
}
//重写getmovie
public function getMovie(){
echo '看电影';
}
public function getGame(){
echo '打游戏';
}
public function showInfo(){
$this->getTel();
$this->getMusic();
$this->getMovie();
$this->getGame();
}
}
$mobile = new Mobile;
$mobile -> showInfo();