第76讲 接口

接口

使用接口(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、当一个类实现了某些接口时候,则必须把所有接口的方法全部实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有时有晌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值