PHP5.4以上更新的伪"多继承"--trait语法

       在PHP低版本中,类是无法实现多继承的,因而,我们在想要达到多继承效果时就要考虑到"链式继承",在高版本PHP中更新了trait语法,以实现"所谓的多继承"

       

<?php

trait PHP

{

public function pcode()

{

echo ‘我可以编写PHP代码‘;

}

}

?

trait Java

{

public function jcode()

{

echo ‘我可以编写JAVA代码‘;

}

}

class Stu

{

use PHP , Java;

}

$stu = new Stu;

$stu->pcode();  //输出结果我可以编写PHP代码

$stu->jcode(); //输出的结果是我可以编写PHP代码 我可以编写JAVA代码;  实现了所谓的多继承

时间: 2024-10-22 04:01:03

PHP5.4以上更新的伪"多继承"--trait语法的相关文章

php实现多继承-trait语法

自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait. Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制.Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method.Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相关典型问题. Trait 和 Class 相似,但仅仅旨在用细粒度和一致的方式来组合功能. 无法通过 trait 自身来实例化.它为传统继承增加了

javascript伪类继承修订版

原先文章中提到的伪类继承,超类的构造函数会被执行两次,所以效率上会有点问题,看了高级程序之后,发现原来还可以改进,只需要用一个函数来实现继承即可. function inherit(subClass, superClass) { function F() {} //创建临时构造函数 F.prototype = superClass.prototype //将超类的原型作为临时构造函数的原型 var prototype = new F() //实例化临时函数,到这里其实是把superClass复制

Unity3D热更新全书-脚本(三) C#LightEvil语法与调试

调试,这是一个无法规避的问题 C#Light 由于有 词法解释.语法解释.运行时三种情况 所以和C#也是有类似的问题 出错大致可以分为编译错误和运行时错误 拼写出莫名的东西或者语法不正确,会在编译阶段报错,这种错误很好检查,因为 C#Light语法是C#的严格子集,所有的C#Light脚本都可以用C#的标准做语法检查 这也是C#Light基本上是用VisualStudio做编辑器的原因所在,直接作为C#代码编译,可以排除大部分的语法问题. 然后剩下的一些作为C#代码可以编译过,但是C#Light

js中继承的实现,原型链的知识点归纳,借用构造函数,组合继承(伪经典继承)

博客搬迁,给你带来的不便,敬请谅解! http://www.suanliutudousi.com/2017/10/31/js%e4%b8%ad%e7%bb%a7%e6%89%bf%e7%9a%84%e5%ae%9e%e7%8e%b0%ef%bc%8c%e5%8e%9f%e5%9e%8b%e9%93%be%e7%9a%84%e7%9f%a5%e8%af%86%e7%82%b9%e5%bd%92%e7%ba%b3%ef%bc%8c%e5%80%9f%e7%94%a8%e6%9e%84%e9%80%a

原型继承的语法格式

最规范的语法:   function 子类(){ 父类.call(this); }   var F = function(){}; F.prototype = 父类.prototype; //让F的原型指向父类的原型 子类.prototype = new F(); 子类.protype.constructor = 子类的构造函数

微软 .net 你更新这么快IDE vs2015 、语法糖 6.0、framework、‘吹得这么牛,然并用

好久没写吐槽文章了,因为无尽的加班,也因为工作的变迁,又因为最近看了微软又尼玛发布什么什么,好受不了. 今年大专毕业第八个年头了,人也到了30,真是光阴荏苒啊.最近这一两年发生了很多事,让我自己倍受打击,今天无聊,静静的思考一下人生. 八年,人生能有几个这样的八年?工作都绑死在.net平台.今天很想从头到尾吐槽一下.net这个神一般的平台. 笔者我,为何鬼使神差的选择了.net这个平台呢?毕业设计的时候,看拖控件方便,IDE 很炫酷,当时大三最后也开了这么个傻X课程,然后毕业设计顺理成章的选择了

第六章 面向对象的程序设计 (3 继承)

6.3 继承 许多OO 语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript 中无法实现接口继承.ECMAScript 只支持实现继承,而且其实现继承主要是依靠原型链来实现的. 6.3.1 原型链 ECMAScript 中描述了原型链的概念,并将原型链作为实现继承的主要方法.其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.简单回顾一下构造函数.原型和实例的关系:每个构造函数都有一个原型

JavaScript 随笔2 面向对象 原型链 继承

第六章 面向对象的程序设计 1.创建对象的几种方式 A)工厂模式 function CreatObj(name,sex,age){ this.name=name; this.sex=sex; this.age=age; } 缺点:虽然可以批量创建对象,却不能知道对象的类型 只知道他是Object类型: B)构造函数 function Person(name,sex){ this.name=name; this.sex=sex; this.sayName=function(){ alert(thi

JavaScript继承学习笔记

JavaScript作为一个面向对象语言(JS是基于对象的),可以实现继承是必不可少的,但是由于本身并没有类的概念,所以不会像真正的面向对象编程语言通过类实现继承,但可以通过其他方法实现继承.(javascript中的继承是通过原型链来体现的http://www.cnblogs.com/amumustyle/p/5435653.html)实现继承的方法很多,下面就只是其中的几种. 一.原型链继承 1 function Person() { //被继承的函数叫做超类型(父类,基类) 2 this.