【代码总结】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的方法支持重载 ...
随机推荐
- 路飞-celery框架
Celery 官方 Celery 官网:http://www.celeryproject.org/ Celery 官方文档英文版:http://docs.celeryproject.org/en/la ...
- Port 3000 is already in use
cmd输入:netstat -ano | findstr :3000//查看是谁占用了3000号端口 显示如下 TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 18412 T ...
- Apache Kafka(六)- High Throughput Producer
High Throughput Producer 在有大量消息需要发送的情况下,默认的Kafka Producer配置可能无法达到一个可观的的吞吐.在这种情况下,我们可以考虑调整两个方面,以提高Pro ...
- dfs题型一
代码: #include <iostream> #include <algorithm> #include <vector> using namespace std ...
- .NET知识梳理——2.反射
1. 反射 1.1 DLL-IL-Metadata-反射 DLL:程序集,包含IL 和Metadada IL:面向对象中间语言(不太好阅读) Metadata描述了dll.exe中的各种 ...
- form中把图片设为按钮
提交按钮sumbit <input type="image" src="图片路径">//type="image"默认是sumbi ...
- 吴裕雄 python 机器学习——数据预处理标准化MinMaxScaler模型
from sklearn.preprocessing import MinMaxScaler #数据预处理标准化MinMaxScaler模型 def test_MinMaxScaler(): X=[[ ...
- Opencv模块
参考博客:https://blog.csdn.net/u012679707/article/details/79505279
- 多核 CPU 和多个 CPU 有何区别?
原文来自:http://www.solves.com.cn/it/yj/CPU/2019-06-24/1122.html 多核CPU和多CPU的区别主要在于性能和成本.多核CPU性能最好,但成本最高: ...
- JSP技术(二)
参考网址:https://blog.csdn.net/king_cannon_fodder/article/details/79835463 (1)JSP隐式对象(9个内置对象) Servlet容器会 ...