跟着百度学PHP[4]OOP面对对象编程-12-对象接口技术(interface)

PHP与大多数面向对象编程语言一样,不支持多重继承。也就是说每个类只能继承一个父类

接口正是解决每个类只能继承一个父类这个问题的

接口用什么权限,继承的那个方法也要使用什么权限。

接口的声明使用:interface

接口的继承使用:implements

目录++++++++++++++++++++++++++++++++++++++++++++

00x1 接口的声明以及接口的引用(案例一)

00x2 如何继承多个接口(案例二)

00x3 判断某个对象是否实现了某个接口(案例三)

++++++++++++++++++++++++++++++++++++++++++++++

00x1 案例一

<?php
interface icaneat{           #使用interface声明一个接口
    public function eat($food); //接口里面不需要有方法的实现
}
class Human implements icaneat{      #使用implements继承接口(不能使用extends),稍后要与接口对接的属性或者方法要与其一致。
    public function eat($food){                            #如该行所示,要与接口的属性或者方法一致。
        echo "i eating ".$food."\n";       //实现了某一个接口之后,必须提供接口中定义的方法的具体实现。
    }23
}
$test=new Human();
$test->eat(‘apple‘);
 ?>输出效果如下:i eating apple

00x2 案例二

在implments使用后用逗号隔开即可实现对多个接口的继承。

格式:

  implements 接口1,接口2,....

<?php
interface icaneat{
    public function eat($food);
}
interface hello{
    public fuction hello($nihao);
}
class Human implements icaneat,hello{       #使用逗号隔开即可实现对多个接口的继承
    public function eat($food){
        echo "i eating ".$food."\n";
    }
}
$test=new Human();
$test->eat(‘apple‘);

 ?>

00x3 案例三

使用instanceof关键词检验

范例:var_dump($object instanceof hello); #对象$object是否实现了hello接口

<?php
interface test
{
    public function one($a);
}
interface test2
{
    public function two($b);
}
class chengdaniu implements test,test2
{
    public function one($a){
        echo "我爱WEB安全技术!";
    }
    public function two($b){
        echo "我要成大牛!";
    }
}
$shi=new chengdaniu();
var_dump($shi instanceof test);
 ?>输出效果如下所示:

boolean true

THE END



跟着百度学PHP[4]OOP面对对象编程-12-对象接口技术(interface)

时间: 2024-10-24 01:48:05

跟着百度学PHP[4]OOP面对对象编程-12-对象接口技术(interface)的相关文章

跟着百度学PHP[4]OOP面对对象编程-7-OOP的一些关键子讲解

面对对象常用的一些关键子:http://www.cnblogs.com/xishaonian/p/6146794.html排版不是很好望见谅. THE END 跟着百度学PHP[4]OOP面对对象编程-7-OOP的一些关键子讲解

跟着百度学PHP[4]OOP面对对象编程-5-内部引用$this

$this就是对象内部代表这个对象的引用 可以调用被封装的方法或者属性! <?php class Person{ private $name; private $age="21"; var $sex; function play(){ echo "他正在玩儿呢"; } private function Hello(){ //使用private封装hello方法.该方法不可直接调用.但是可以在内部使用$this调用. echo "这个是被封装的内容&q

跟着百度学PHP[4]OOP面对对象编程-12-抽象类

什么是抽象方法?我们在类里面定义的没有方法体的方法就是抽象方法.所谓的没有方法体指的是,在方法声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字“abstract”来修饰. 目录==================================== 1.声明一个抽象类,抽象方法(案例一) 2.继承一个抽象类(实例二) ======================================= 案例一 <?php abstract

跟着百度学PHP[4]OOP面对对象编程-7-封装性private

所谓封装顾名思义,如同箱子般给封装起来.结合前面的来说就是对属性或者方法,封装后的方法或属性只能有类内部进行调用.外部调用不了. 封装性的好处: 1.信息隐藏 2.http://www.cnblogs.com/yisss/p/3412702.html 3.https://zhidao.baidu.com/question/2203595698703331308.html 目录------------------------------------- 00X1 进行封装 00x2 如何调用封装的属

跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)

函数就是成员方法(方法有三:构造方法.成员方法.析构方法) 下面是两种方法. 构造方法和构析方法 00x1 构造方法 构造方法会在创建对象之后自动调用.其名称为__construct <?php class Student{ var $name; var $age; var $sex; function __construct(){ //可以从输出中看得出来,我们并没有输出这个方法,但是他自动输出了.这个就是构造方法的作用,会自动的被调用! echo "520PHP<br />

跟着百度学PHP[4]OOP面对对象编程-15-魔术方法__call方法

在程序开发中,如果在使用对象调用对象内部方法时候,调用的这个方法不存在那么程序就会出错,然后程序退出不能继续执行.那么可不可以在程序调用对象内部 不存在的方法时,提示我们调用的方法及使用的参数不存在,但程序还可以继续执行,这个时候我们就要使用在调用不存在的方法时自动调用的方 法“__call()”.  THE END 跟着百度学PHP[4]OOP面对对象编程-15-魔术方法__call方法

跟着百度学PHP[4]OOP面对对象编程-16-switch逻辑就语句

直接看案例.较为简单.不解释. <?php $chengji="100"; #先定义一个变量赋值一个数值 switch ($chengji) { case $chengji <= 100 && $chengji >= 90; #case的意思是案例.倘若这个案例成立就执行输出否则不执行 echo "优秀"; break; case $chengji < 90 && $chengji >= 80; echo

跟着百度学PHP[10]-读取COOKIE案例

<?php if(!isset($_COOKIE['visittime'])){ #使用$_COOKIE获取visittime,如果不存在就执行下面的语句块,否则执行else setcookie('visittime',date('y-m-d h-i-s'));#生成一个visittime的cookie. echo "你是第一次进入网站."; }else{ setcookie('visittime',date('y-m-d h-i-s')); echo "你上一次访问网

【PHP面向对象(OOP)编程入门教程】20.PHP5接口技术(interface)

PHP与大多数面向对象编程语言一样,不支持多重继承.也就是说每个类只能继承一个父类.为了解决这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列方法.接口是一种特殊的抽象类,抽象类又是一种特殊的类,所以接口也是一种特殊的类,为 什么说接口是一种特殊的抽象类呢?如果一个抽象类里面的所有的方法都是抽象方法,那么我们就换一种声明方法使用“接口”:也就是说接口里面所有的方法必须 都是声明为抽象方法,另外接口里面不能声明变量(但可声明常量constant),而且接口里面所有的