【代码总结】PHP面向对象之接口与多态性应用
概述:
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面向对象之接口与多态性应用的更多相关文章
- JavaSE入门学习21:Java面向对象之接口(interface)(二)
一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.j ...
- oop面向对象【接口、多态】
今日内容 1.接口 2.三大特征——多态 3.引用类型转换 教学目标 1.写出定义接口的格式 2.写出实现接口的格式 3.说出接口中成员的特点 4.能够说出使用多态的前提条件 5.理解多态的向上转型 ...
- java——接口、多态性、对象转型
接口定义: 默认方法: 默认方法的作用: 如果在你的接口已经投入使用了,这个时候你想要在接口里面加一个方法,这个时候如果你加一个抽象方法的话,所有实现类都要改变源代码(因为实现类要把接口中的所有抽象 ...
- Java面向对象:接口
Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...
- php面向对象的接口和APP接口区别
以下是php面向对象的接口:
- Python面向对象之接口类(抽象类)
Python面向对象之接口类(抽象类):就是制定一个规范. 比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因). 他的定义是需要abc模块,要变的就是他的方 ...
- -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
- JAVASE(十)面向对象:特性之多态性、Object类、代码块、关键字:static、final、父子类执行顺序
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.面向对象的特性之:多态性 多态性的理解:事物的多种形态 1.1 广义上多态性的体现:①方法的重写,重 ...
- Java学习笔记(六):面向对象、接口和抽象类
类和对象 Java是一门面向对象的语言,下面我们来了解一下Java中的面向对象. 方法和重载 Java中的方法格式如下: 访问修饰符 返回值类型 方法名(参数){ 方法主体 } Java的方法支持重载 ...
随机推荐
- 如何删除github中的repository
打开个人界面->点击进入想删除的repository的界面->拉到最下面的danger zone->delete
- 2.6.1 XML配置:创建XML文件
(1) 工程名右击---New--file -- newfile窗口中:filename中输入testng.xml testng.xml 文件中打开后,切换到source 标签中.进行编辑. 内容 ...
- lighting
lighting lighting 是基于 nodejs 构建的一个命令行工具,使用 lighting 可以快速搭建 H5.APP.RestAPI 的开发工程环境(结合 VSCode 最佳).本地开发 ...
- zlt项目实践
nacos gateWay fronted oath2 codeGenerate log-app monitor-app search-app
- PyCharm中的django项目的引入
1.从github或者从本地的文件打开项目 2.项目引入后,python manage.py runserver 8080启动 1.启动的时候有错误,看看要引入的模块错误,然后把模块引入 D:\.St ...
- python中使用graphviz环境配置
去官网下载graphviz,并下一步安装 配置graphviz的bin目录到path环境变量下 python相关包: 使用conda注意:conda install graphviz 可能没用,要使用 ...
- 非分页中的上一篇下一篇sql语句如何写
上一页:where id=(select max(id) from examination where id < #{id} and class=#{class}) 下一页:where id=( ...
- EVE-NG镜像模板资源占用统计
转:http://www.emulatedlab.com/forum.php?mod=viewthread&tid=432&extra=page%3D1 EVE Image fold ...
- 【原】shell增加定时任务
通过shell脚本增加定时任务:#CRON_FILE="/var/spool/cron/root" (centos系统) CRON_FILE="/var/spool/cr ...
- C#委托和事件的区别
“委托是具有相同签名的函数(方法)的类型,事件是委托的应用方式之一” ---来自评论区老司机 delegate 是为了在C#中把函数作为对象传来传去而实现的一个“函数包装”.由于在C#中函数是二等公民 ...