php中extends是什么意思,在php中extends与implements的区别
PHP
类是单继承,也就是不支持多继承,当一个类需要多个类的功能时,继承就无能为力了,为此 PHP 引入了类的接口技术。
接口的使用使用implements关键字,而对抽象类使用的是extends继承关键字。
在接口中只能定义常量和方法,不能实现方法,const定义常量,functionUser();不能使用pubilc
$a ="a"与 pubilc static$a
="a";
//抽象类
abstract class Father {
function name() {
echo "name...
";
}
abstract function name2();
public $n="n1";
public static $n2="n2";
const n3="n3";
}
class Data extends Father {
function name2() {
echo "name2 of Data...
";
}
}
$v=new Data();
echo $v->var1."
";
echo Father::$n2."
";
echo Father::n3."
";
//实现接口
interface User{
function getDiscount();
function getUserType();
}
//VIP用户 接口实现
class VipUser implements User{
private $discount = 0.5;
function getDiscount() {
return $this->discount;
}
function getUserType() {
return "VIP用户";
}
}
class Goods{
//public $price="45"; 此处接口定义中不能包含成员变量
//public static $price="45"; 此处接口定义中不能包含静态变量
//
const price = 45;
public $vc;
//定义 User 接口类型参数,这时并不知道是什么用户
function run(User $vc){
$this->vc = $vc;
$discount = $this->vc->getDiscount();
$usertype = $this->vc->getUserType();
echo $usertype."商品价格:".self::price*$discount;
}
}
$display = new Goods();
$display ->run(new VipUser); //可以是更多其他用户类型
?>
php中extends是什么意思,在php中extends与implements的区别相关推荐
- 浅谈java中extends与implements的区别
Extends可以理解为全盘继承了父类的功能.implements可以理解为为这个类附加一些额外的功能:interface定义一些方法,并没有实现,需要implements来实现才可用.extend可 ...
- Java中<? super T>和List<? extends T>的区别
Java中<? super T>和List<? extends T>的区别 <? extends T> 下面通配符声明List<? extends Numbe ...
- java中extends与implements的区别
JAVA中extends 与implements有啥区别? 1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口. ...
- java中implements是什么意思_Java:extends和implements的区别+用法
Java代码中的extends和implements让我感到很迷惑,现在终于弄明白它们之间的区别和用法了. //定义一个Runner接口 public inerface Runner { int ID ...
- UML 中关系详解以及在visio中的表示
http://www.cnblogs.com/kittywei/archive/2013/05/15/3079536.html Uml 关系主要有四大类: 依赖,关联,泛化,实现. 其中 依赖和关联是 ...
- JAVA Web Servlet中的异步处理 (2) -- Servlet3.1中的Non-blocking IO支持
JAVA Web Servlet中的异步处理 (2) – Servlet3.1中的Non-blocking IO支持 在servlet 3.1中,新增了non-blocking IO支持. 在serv ...
- JAVA Web Servlet中的异步处理 (1) -- Servlet3.0中的Async支持
JAVA Web Servlet中的异步处理 (1) – Servlet3.0中的Async支持 每个请求来到Web容器,Web容器会为其分配一个线程来专门负责该请求,直到完成处理前,该执行线程都不会 ...
- js删除两个集合中共同元素_多个集合中的共同和独特元素
js删除两个集合中共同元素 本周,我们将暂时中断较高级别的问题和技术文章,以解决我们中许多人可能面临的一些代码问题. 没什么花哨的或太辛苦的,但是有一天它可能会节省您15分钟的时间,偶尔回到基础上也很 ...
- android中gradle的作用,Gradle 之 Android 中的应用
在上一篇文章中 Gradle 之语言基础 Groovy 主要介绍了 Groovy 的基础语法(如果没有 Groovy 的基础,建议先看看上篇文章,如果可以动手敲一下里面的示例代码就更好不过了),也是为 ...
最新文章
- 数据库管理系统的组成和结构
- 成功解决sys.argv[1] IndexError: list index out of range错误
- HTML知识点总结之ul,ol,li标签
- 如何为您的AWS账户设置多因素身份验证(MFA)
- IntelliJ IDEA for Mac 文件结构侧边窗口/类文件内部结构(File Structure)
- [论文阅读] Deep Transformers For Fast Small Intestine Grounding In Capsule Endoscope Video
- nyoj 56 阶乘中素数的个数
- halcon窗体的移动和缩放_halcon与C#联合编程之鼠标控制图片缩放,拖动,roi
- Oracle中的within,oracle中within group的用法
- 推荐两个有意思的公号
- pdf转图片,汉字不显示No glyph for 23495(CID 0969) in font SimSun
- Task.Yield()和Task.CompletedTask有什么不同
- 美国TJX公司 - MBA智库百科
- 链游界巅峰巨作Hegemony Ⅱ 仿真元宇宙游戏王国震撼问世
- 《读书是教师最好的修行》读后感优秀范文2200字
- 什么是Python?Python简介
- WebSocket 入门:简易聊天室
- 牛客练习赛60 C—操作集锦
- 【OneDrive篇】OneDrive禁用个人保管库(网页端)
- pytorch学习(一)数据加载之前的预处理(UCSD数据集)