跟着百度学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)的更多相关文章
- 跟着百度学PHP[4]OOP面对对象编程-7-OOP的一些关键子讲解
面对对象常用的一些关键子:http://www.cnblogs.com/xishaonian/p/6146794.html排版不是很好望见谅. THE END
- 跟着百度学PHP[4]-OOP面对对象编程-1-什么是面对对象编程
该阶段学习参考:http://www.cnblogs.com/xiaochaohuashengmi/archive/2010/09/10/1823042.html 面向对象编程(Object Orie ...
- 跟着百度学PHP[4]OOP面对对象编程-17-多态
多态是除封装和继承之外的另一个面象对象的三大特性之一. 多态的作用简而言之就是为程序做括展. 比如说在公司上班,每个月财务发放工资,同一个发工资的方法,在公司内不同的员工或是不同职位的员工,都是通过这 ...
- 跟着百度学PHP[4]OOP面对对象编程-14-克隆对象__clone()方法
$b=clone ($a) #克隆a对象. <?php class Human { private $name; private $sex; private $age; function __c ...
- 跟着百度学PHP[4]OOP面对对象编程-13-魔术方法__set(),__get(),__isset(),__unset()
__set() 在对象访问私有成员的时候自动被调用,达到了给你看,但是不能给你修改的效果!(在对象访问一个私有的成员的时候就会自动的调用该魔术方法) __get() 方法用于获取私有属性值.(在设置私 ...
- 跟着百度学PHP[4]OOP面对对象编程-10-静态关键字static
使用static关键字可以将类中的成员标识为静态的,既可以用来标识成员属性,也可以用来标识成员方法. 以Person类为例,如果在person类中有一个“$country=’china’”的成员属性, ...
- 跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)
函数就是成员方法(方法有三:构造方法.成员方法.析构方法) 下面是两种方法. 构造方法和构析方法 00x1 构造方法 构造方法会在创建对象之后自动调用.其名称为__construct <?php ...
- 跟着百度学PHP[4]OOP面对对象编程-5-内部引用$this
$this就是对象内部代表这个对象的引用 可以调用被封装的方法或者属性! <?php class Person{ private $name; "; var $sex; functio ...
- 跟着百度学PHP[4]OOP面对对象编程-4-对象成员的访问 ->
使用一个减号一个尖括号->来达到访问对象成员. $object->方法 来看案例. <?php class Person{ private $name; "; var $s ...
随机推荐
- putty配色方案
最近用腻了putty默认的配色方案,所以打算换一下配色. 使用的是修改注册表的方法. 1.打开注册表:运行——>regedit 2.找到对应的注册表文件,并导出:注册表地址 HKEY_CURRE ...
- 自然语言20.1 WordNet介绍和使用 _
http://blog.csdn.net/ictextr9/article/details/4008703 Wordnet是一个词典.每个词语(word)可能有多个不同的语义,对应不同的sense.而 ...
- JavaWeb学习笔记——XML和SAX解析区别
- Java——布局管理器
在Swing中使用的所有布局管理器都可以实现LayoutManager接口,在Swing中主要使用的5种布局管理器:FlowLayout.BorderLayout.GridLayout.CardLay ...
- JavaWeb学习笔记——开发动态WEB资源(二)HelloWord
该工程的功能是在页面上输出一段话 首先在src里面新建一个class,在interface里面添加javax.servlet.Servlet 以下是HelloServlet.java中的代码: pac ...
- Win7环境下Eclipse连接Hadoop2.2.0
准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立java工程,导入hadoop2.2.0相关jar包 2.在src根目录下拷入log4j.properties,通过log4j查 ...
- [Redis]如何通过Powershell创建Redis服务
目前Redis在中国上线了,不过只是预览版而且不能通过Portal进行操作,不过可以通过Powershell创建,具体如下: 下载最新的Powershell SDK:http://www.window ...
- Jquerymobile随笔
fixed <div data-role="header" data-position="fixed"> <h1>欢迎访问我的主页< ...
- Vim以及Terminal 配色方案---"Solarized"配色
linux用户给vim 以及terminal的配色方案---Solarized配色 官网地址:http://ethanschoonover.com/solarized 看这配色:八卦乾坤,赏心悦目,高 ...
- JAVA基础知识(转)
本文就java基础部分容易混淆的一些知识点进行了一下总结.因为Java本身知识点非常多,不可能在很短的篇幅就能叙述完,而且就某一个点来讲,如欲仔细去探究,也能阐述的非常多.这里不做全面仔细的论述,仅做 ...