PHP接口学习
接口:不同类的共同行为进行定义,然后在不同类中实现不同的功能。
接口的具体语法:
接口是零件可以用多个零件组成一个新东西;
接口本身是抽象的,内部申明的方法也是抽象的; 不用加abstract
一个类可以一次性实现多个接口。语法用implements实现,然后在把接口的功能实现;
接口也可以基继承,用extends;
接口是一堆方法的说明,不能加属性(成员变量);
接口就是供组装成类用的,方法只能用public;
接口作为一种严格规范 降低开发者与调用者的沟通
1、接口实现
举例 人类、动物实现某个动作
定义接口
- interface Action(){
- //接口定义‘public’访问属性方法,无需实现方法
- public function eat( $foods );
- }
Human ( Animl ) 类实现接口
- class Human implements Action(){
- //实现接口,必须提供接口中定义的方法
- public function eat( $foods){
- echo "Human eat {$foods}";
- }
- }
- #Animal类
- class Animal implements Action(){
- public function eat( $foods){
- echo "Animal eat {$foods}";
- }
- }
Human( Animal )实现eat的动作:
- $human = new Human();
- $human->eat();
- $animal = new Animal();
- $animal->eat();
instanceof 判断某个对象是否实现了某个接口
- function CheckEat( $obj ){
- if( $obj instanceof Action ){
- $obj->eat( 'orange' );
- }else{
- echo "the object not implements Action";
- }
- }
- CheckEat( $human );
- CheckEat( $animal );
2、接口继承
- //extends 让接口继承接口
- interface IcanPee extends Action(){
- public function pee();
- }
- //当类实现子接口时,父接口定义的方法也需要在这个类里面具体实现
- Class Human1 implements IcanPee(){
- public function pee(){ }
- public function eat( $foods ){ }
- }
某个类实现(implements)了某个接口和继承(extends)了某个类的区别?
实现接口和继承很类似,但接口不能直接创建自己的对象
继承的父类必须有该方法的具体实现,子类可以重写父类的方法,也可以不写
接口里面的方法是不需要具体实现的,只要定义了方法的名称和参数即可,具体的实现必须在实现类中定义
一句话概括: 类的方法必须有实现,接口的方法必须为空。
PHP接口学习的更多相关文章
- C# 常用接口学习 ICollection<T>
C# 常用接口学习 ICollection<T> 作者:乌龙哈里 时间:2015-11-01 平台:Window7 64bit,Visual Studio Community 2015 参 ...
- C# 常用接口学习 IComparable 和 IComparer
C# 常用接口学习 IComparable 和 IComparer 作者:乌龙哈里 时间:2015-11-01 平台:Window7 64bit,Visual Studio Community 201 ...
- 工程化编程实战callback接口学习笔记
一.编译并运行 help.version命令执行正常,但quit命令出错 二.Debug 从命令输入到执行过程: 源代码: 更改后: 运行结果:能正确运行quit命令 Callback接口学习成果: ...
- caffe的python接口学习(1):生成配置文件
caffe是C++语言写的,可能很多人不太熟悉,因此想用更简单的脚本语言来实现.caffe提供matlab接口和python接口,这两种语言就非常简单,而且非常容易进行可视化,使得学习更加快速,理解更 ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [3] 首页 APP 接口开发方案 ② 读取缓存方式
以静态缓存为例. 修改 file.php line:11 去掉 path 参数(方便),加上缓存时间参数: public function cacheData($k,$v = '',$cacheTim ...
- OpenCV(C++接口)学习笔记1-图像读取、显示、保存
OpenCV在2.0加入版本号之后C++接口函数,学习前C语言的接口功能.现在OpenCV它已被发展到2.4.9版本号,所以,我决定学习C++接口函数,与步伐. 1.创建图像 cv::Mat imag ...
- C# 常用接口学习 IEnumerable<T>
作者:乌龙哈里 时间:2015-10-24 平台:Window7 64bit,Visual Studio Community 2015 本文参考: MSDN IEnumerable<T> ...
- java Thread 接口学习
对于程序员来说 Thread应该都不会陌生,具体的接口调用不是本篇的重点.Thread的基本概念及接口的使用:java多线程 下面将更多的从底层实现角度讲一下Thread. Thread的声明如下: ...
- JDBC 接口学习
说明:文章所有内容皆选自实验楼教程[JDBC 入门教程],想要学习更多JDBC,可以点击教程进行学习~ JDBC 简介 JDBC 的全称是 Java Database Connectivity,叫做 ...
- JMeter接口学习笔记2017
协议学习地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html 本篇学习笔记来自于慕课网上学习JMeter的学习笔记 学习 ...
随机推荐
- 【Hololens】微软Hololens虚拟现实视频集
混合虚拟现实(Hololens眼镜) 微软还是混合虚拟现实的行业领导者,Hololens眼镜在很多行业有了令人印象深刻的应用和演示.譬如: Hololens中文宣传片: https://pan.bai ...
- HTML表单基本格式与代码
咱们先来看下今天咱们需要学习的内容,理解起来很简单,像我这种英语不好的只是需要背几个单词 在HTML中创建表单需要用到的最基本的代码和格式 <form method="post/get ...
- T-SQL几个简单的操作
视图 咱们先来了解下视图到底是什么意思,顾名思义,用简单的视觉方式展现复杂的内容 有什么功能呢, 各位应该还记得咱们之前练习的那个小小的数据库superise,里面有这么四张表,分别是: studen ...
- GitHub上非常受开发者欢迎的iOS开源项目(二)
"每一次的改变总意味着新的开始."这句话用在iOS上可谓是再合适不过的了.GitHub上的iOS开源项目数不胜数,iOS每一次的改变,总会引发iOS开源项目的演变,从iOS 1.x ...
- JS自定义对象,正则表达式,JQuery中的一些知识点
一:自定义对象 1.基本概念:①对象:包含一系列无序属性和方法的集合.②键值对:对象中的数据是以键值对的形式存在的,以键取值.③属性:描述对象特征的一系列变量.[对象中的变量]④方法:描述对象行为的一 ...
- xmlplus 组件设计系列之四 - 列表
列表组件是极其常用的一类组件,是许多视图组件系统的必须包含的.列表可以做的很简单,只显示简洁的内容.列表也可以做的很复杂,用于展示非常丰富的内容. 组成元素 列表离不开列表项以及包含列表项的容器.下面 ...
- [Oracle]LogMiner工具小结
(一)LogMiner工具的作用Logminer工具主要用来分析redo log和archive log文件.通过该工具,可以轻松获得Oracle redo log和archive log文件的具体内 ...
- 基于vue2.0前端组件库element中 el-form表单 自定义验证填坑
eleme写的基于vue2.0的前端组件库: http://element.eleme.io 我在平时使用过程中,遇到的问题. 自定义表单验证出坑: 1: validate/resetFields 未 ...
- Lua调试:getinfo详解
getinfo是调试Lua程序时一个很重要很常见的函数,主要用于获取函数调用的基本信息.这个函数的难点在于各个参数的含义.下面一一介绍. 一.函数简介: 1.原型:getinfo(level, arg ...
- iOS 使用 UIMenuController 且不隐藏键盘的方法
iOS 使用 UIMenuController 且不隐藏键盘的方法 在键盘显示的时候使用 UIMenuController 弹出菜单,保持键盘显示且可输入的状态. 实现方法有 修改响应链(推荐) 遵循 ...