概述:

PHP之支持单继承,也就是说每个类智能继承一个父类。当声明的新类继承抽象类实现模板以后就不能再有其他问题,为了解决这个问题,PHP引用了接口

---------------------------------------------------------------------------------------------------------------------------------------------

一、声明接口

1、接口中的方法,必须全是抽象方法(不能用不抽象的方法)

2、只能用const关键字声明为常量的成员属性

3、所有的权限必须是公有的(public)

4、声明接口不使用class,而是使用interface

<?php
interface One{ //声明一个接口使用interface关键字,One为接口名称
const CONSTANT = 'CONSTANT value'; //在接口中声明一个常量成员属性,和在类中声明一样
function fun1(); //在接口中声明一个抽象方法fun1()
function fun2(); //在接口中声明一个抽象方法fun2()
}
?>

二、接口间的继承

1、extends关键字继承(接口和接口-无覆盖)

  可以使用extends让一个接口去继承另一个接口,实现接口之间的扩展

<?php
interface One{ //声明一个接口使用interface关键字,One为接口名称
const CONSTANT = 'CONSTANT value'; //在接口中声明一个常量成员属性,和在类中声明一样
function fun1(); //在接口中声明一个抽象方法fun1()
function fun2(); //在接口中声明一个抽象方法fun2()
}
//使用一个接口Two对接口One进行扩展
interface two extends One{
function fun3(); //在接口声一个抽象方法fun3()
}
?>

2、使用一个类来实现接口(类和接口,抽象类和接口-有覆盖)

  类实现接口必须有子类把它所以的抽象方法全部实现才可以

  不要使用extends这个关键字,使用implements 相当于 extends  extends 继承(扩展),在这个PHP中,一个类只能有一个父类

<?php
interface One{ //声明一个接口使用interface关键字,One为接口名称
const CONSTANT = 'CONSTANT value'; //在接口中声明一个常量成员属性,和在类中声明一样
function fun1(); //在接口中声明一个抽象方法fun1()
function fun2(); //在接口中声明一个抽象方法fun2()
}
//声明一个抽象类去实现接口One中的第二个方法
abstract class Three implements One{ //只实现接口中的一个抽象方法
function fun2(){
//具体的实现内容由子类决定
}
}
//声明一个类实现接口One中的全部抽象方法
class Four implements one{
//必须把One中的方法全部实现
function fun1(){ //实现接口中的第一个方法
//具体的实现内容由子类决定
}
function fun2(){ //实现接口中的第二个方法
//具体的实现内容由子类决定
}
}
?>

三、多接口的继承

实现方式: class 类名 implements 接口名,接口名2{ 实现体。。 }

四、多态性的应用

*多态(使用方式):对于同一个方法,传入不同对象,实现了不同的效果,这个就是多态的意思,
      需要使用的技术:继承或实现,方法的覆盖(重写)。
    实例:
    主板:mainboard   PCI插槽(规范接口)

第三方生产
    声卡: soundCard
    网卡: networkCard
    
    设计模式:单例、单态设计模式

http://localhost/.../index.php?m=类名&a=方法名&其他参数

http://localhost/.../user/add.html

http://news.sohu.com/web/123456.html

http://news.sohu.com//find?id=123456

【代码总结】PHP面向对象之接口与多态性应用的更多相关文章

  1. JavaSE入门学习21:Java面向对象之接口(interface)(二)

    一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.j ...

  2. oop面向对象【接口、多态】

    今日内容 1.接口 2.三大特征——多态 3.引用类型转换 教学目标 1.写出定义接口的格式 2.写出实现接口的格式 3.说出接口中成员的特点 4.能够说出使用多态的前提条件 5.理解多态的向上转型 ...

  3. java——接口、多态性、对象转型

    接口定义:  默认方法: 默认方法的作用: 如果在你的接口已经投入使用了,这个时候你想要在接口里面加一个方法,这个时候如果你加一个抽象方法的话,所有实现类都要改变源代码(因为实现类要把接口中的所有抽象 ...

  4. Java面向对象:接口

    Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...

  5. php面向对象的接口和APP接口区别

    以下是php面向对象的接口:

  6. Python面向对象之接口类(抽象类)

    Python面向对象之接口类(抽象类):就是制定一个规范. 比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因). 他的定义是需要abc模块,要变的就是他的方 ...

  7. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  8. JAVASE(十)面向对象:特性之多态性、Object类、代码块、关键字:static、final、父子类执行顺序

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.面向对象的特性之:多态性 多态性的理解:事物的多种形态 1.1 广义上多态性的体现:①方法的重写,重 ...

  9. Java学习笔记(六):面向对象、接口和抽象类

    类和对象 Java是一门面向对象的语言,下面我们来了解一下Java中的面向对象. 方法和重载 Java中的方法格式如下: 访问修饰符 返回值类型 方法名(参数){ 方法主体 } Java的方法支持重载 ...

随机推荐

  1. SRAM速度提升思路及方法

    SRAM总体分为两大部分,一部分是存储阵列,另一部分是外围辅助电路.提高SRAM工作速度从这两大方面着手. ·存储阵列 对于存储阵列,首先可以通过降低工艺节点,以达到提高器件本身速度,从而提高整体SR ...

  2. 结合webpack使用vue-router和它的子路由,即路由嵌套

    在上一个项目的基础上进行的,所以基本的配置在这里就不赘述了. 一.结合webpack使用vue-router 1.新建组件.vue文件 2.启用路由 安装插件cnpm i vue-router -S ...

  3. Git - 03. git 工作空间

    1. 概述 git 存放代码的地方 2. 创建 命令 # 1. 从无到有 > git init # 2. 从远程拉去现有的仓库 > git clone <url> 3. 文件生 ...

  4. 删除数据高级用法:delete,truncate

    1.语法: delete 允许使用条件(删除符合条件的数据) 允许使用limit,限制删除的记录数.limit N     常见的是,limit配合order by来使用:先将结果排序,再删除固定数量 ...

  5. 如何创建Maven项目和Spring IOC例子

    把如何创建Maven项目和创建Spring IOC的例子分享给大家,希望能对大家有帮助! 我的博客地址:https://www.cnblogs.com/themysteryofhackers/p/12 ...

  6. ora 01704 字符串文字太长

    分析sql执行失败的原因,在于没有强制指定插入字符串为clob类型,解析sql时,oracle会把插入的字符串作为 “字符串类型”处理,由于oracle有最大字符串限制(不超过4000个字符),所以会 ...

  7. Vue - 让水平滚动条(scroll bar)固定在浏览器的底部

    效果 踩坑经历 TLDR; 在几个小时的google和stack overflow的苦苦搜索后,无果. 经过自我思考,想到了一种实现方法: 整个页面是一个盒子,要出现滚动条,必然里面的元素要溢出.也即 ...

  8. S3C2440_时钟和电源管理_阅读开发手册记录

    1.如何进入sleep mode 1)要把一些重要的数据存放在状态寄存器里,状态寄存器里的数据在掉电后不会丢失. 2)要设置好唤醒源 3)配置相关寄存器,使其进入sleep mode 2.如何从sle ...

  9. jQuery的ajax方法的属性以及jsonp的随机数问题

    原文地址[ http://www.cnblogs.com/know/archive/2011/10/09/2204005.html ] <!DOCTYPE html PUBLIC "- ...

  10. 循环select和取赋值

    bootstrap: <!--列表容器--> <div class="panel-body" style="position:relative;&quo ...