第76讲 接口

来源:互联网 发布:网络剧投资 编辑:程序博客网 时间:2024/06/14 09:50

接口

使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。

接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。

接口中定义的所有方法都必须是公有,这是接口的特性。

实现

> 要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。

Note:

  • 1 、实现多个接口时,接口中的方法不能有重名。
  • 2、接口也可以继承,通过使用 extends 操作符。
  • 3、类要实现接口,必须使用和接口中所定义的方法完全一致的方式。否则会导致致命错误。

常量

接口中也可以定义常量。接口常量和类常量的使用完全相同,但是不能被子类或子接口所覆盖。

<?php    //接口来定义规范    interface iUsb extends iMouse{        //public $a = 90;//这个直接在接口中定义变量是错误的。        //public const A=90;//这个带有访问修饰符 提示报错        const A = 90;////这样定义常量是没毛病的,而且后续不能对这个值进行更改。        public function start();//定义方法的访问修饰符必须是public 否则报错了。        public function stop();    }    interface iMouse{        public function move();    }    interface iShow{        public function show();    }    class Camera implements iUsb,iShow{        public function move(){            print "相机移动<br/>";        }        public function start(){            print "相机开始工作<br/>";        }        public function stop(){            print "相机停止工作<br/>";        }        public function show(){            print "相机show<br/>";        }    }    class TelPhone implements iUsb,iShow{        public function move(){            print "手机移动<br/>";        }        public function start(){            print "手机开始工作<br/>";        }        public function stop(){            print "手机停止工作<br/>";        }        public function show(){            print "手机show<br/>";        }    }    $camera = new Camera();    $camera->start();    $camera->stop();    $camera->move();    $camera->show();    $telphone = new TelPhone();    $telphone->start();    $telphone->stop();    $telphone->move();    $telphone->show();    print "<br/>".iUsb::A;?>

结果:—注意接口内部定义的说明

相机开始工作相机停止工作相机移动手机开始工作手机停止工作手机移动90

总结:
1、一个接口可以继承多个接口
2、当一个类实现了某些接口时候,则必须把所有接口的方法全部实现