美文网首页
PHP学习2

PHP学习2

作者: 罟宁 | 来源:发表于2016-09-24 11:20 被阅读0次

六.继承与多态

1. 类的组合和继承(继承===“是、像”、“父与子”,组合===“需要”、“整体与局部”)
组合:在类中创建对象进行使用
继承:类与类之间的父子关系,子类继承父类的方法和属性
  • 在子类中,parent关键字代表父类,self代表自身,用::运算符,又叫范围解析操作符,调用父类的方法
  • 继承的缺陷:
    ~ 继承破坏封装性
    ~ 继承是紧耦合的
    ~ 继承扩展复杂
    ~ 不恰当的使用继承可能违反现实世界的逻辑(角色与权限问题)
  • 继承的使用
    ~ 被继承的类要设计好,继承树不要超过三层
    ~ 使用final修饰符对不能被继承的类进行修饰。使用final修饰符不仅可防止重要的方法被非法覆写,又能给编辑器寻找优化的机会
    ~ 优先考虑使用组合关系来提高代码的可重用性
    ~ 子类是一种特殊的类型,而不只是父类的一个角色
    ~ 子类扩展,而不是覆盖或者使父类的功能失效
    ~ 底层代码多用组合,顶层/业务层代码多用继承。底层用组合可以提高效率,避免对象臃肿。顶层代码用继承可以提高灵活性,让业务使用更方便。
traits

PHP 5.4中的traits,是新引入的特性,中文还真不知道如何准确翻译好。其实际的目的,是为了有的场合想用多继承,但PHP又没多继承,于是就发明了这样的一个东西。
Traits可以理解为一组能被不同的类都能调用到的方法集合,但Traits不是类!不能被实例化。先来例子看下语法:

    <?php
    trait myTrait{
        function traitMethod1(){}
        function traitMethod2(){}
    }    
    //然后是调用这个traits,语法为:
    class myClass{
        use myTrait;
    }
    //这样就可以通过use myTraits,调用Traits中的方法了,比如:
    $obj = new myClass();
    $obj-> traitMethod1 ();
    $obj-> traitMethod2 (); 
    >
2. 各种语言中的多态
多态
  • 多态就是同一对象在运行时的具体化
  • 多态性是一种通过多种状态或阶段描述相同对象的编程方式
  • 意义在于:实际开发中,只要关心一个接口或基类的编程,而不必关心一个对象所属的具体类
  • 区别是否是多态的关键在于看对象是否属于同一类型。如果把它们看成同一类型,调用相同的函数,返回了不同的结果,那么他就是多态。
  • 多态的本质就是if...else ,只是实现的层级不同
  • 多态的本质就是if...else ,只是实现的层级不同

相关文章

  • 三. PHP与MySQL关系大揭秘

    PHP内置MySQL函数学习(1) PHP内置MySQL函数学习(2) PHP内置MySQL函数学习(2)

  • 菜鸟PHP学习资料总结

    一.PHP学习入门: 1.PHP之道文档 2.PHP之道(简单介绍) 3.php学习路线图引言 4.PHP程序员成...

  • Yii2 PHP框架

    自动加载函数 Yii2 PHP框架学习记录--自动加载函数 常量 Yii2 PHP框架学习记录-常量 $_SERV...

  • PHP学习2

    PHP支持8种基本的数据类型 四种标量类型:+boolean(布尔型)+nteger(整型)+float(浮点型,...

  • PHP学习2

    六.继承与多态 1. 类的组合和继承(继承===“是、像”、“父与子”,组合===“需要”、“整体与局部”) 组合...

  • php学习计划

    1.php学习计划2.php入门 1.Html css 2. javascript+jquery 3.boo...

  • 从0到1学习网络安全 【目录】

    简介 1.什么是网络安全2.学习网络安全应该具备哪些专业 PHP 基础篇 1.【PHP基础-简介】2.【PHP基础...

  • 学习规划

    学习方向较为明确,特此罗列: PHP重点学习yii2,因为yii2里面包含了大部分的PHP高级特性及最前沿的技术。...

  • PHP学习笔记2

    更新记录 读写文件 file_put_contents()函数创建文件并写入数据file_put_contents...

  • 我的前端转行之路2018/02

    2月,我买回了《PHP&MySql》,开始学习PHP和MySql,其实当时我并不知道php属于后端,当时以为Hea...

网友评论

      本文标题:PHP学习2

      本文链接:https://www.haomeiwen.com/subject/dvjxyttx.html