• php是单继承还是多继承呢?


    PHP是不支持多继承的,那么如何实现多继承呢?

    可以使用interface或trait 实现

    interface这里我们就不做过多的说明了,它的原理就是一个类可以实现多个接口。下面这段代码就能够说明。

    interface test1{

    public function connect();
    

    }

    interface test2{

    public function contact();
    

    }

    // 类可以同时实现多个接口

    class myCode implements test1,test2{

    public function connect(){
    

        echo "test1!";

    }
    
    public function contact(){
    

        echo "test2!":

    }
    

    }

    下面我们重点讨论一下trait实现多继承(其实也不叫多继承,应该叫类似多继承的功能)
    那什么是trait呢?
    答:看上去既像类又像接口,其实都不是,Trait可以看做类的部分实现,可以混入一个或多个现有的PHP类中,其作用有两个:表明类可以做什么;提供模块化实现。Trait是一种代码复用技术,为PHP的单继承限制提供了一套灵活的代码复用机制。
    那么怎么实现trait呢?看下面代码:

    //基本类

      class basicTest{

        public function test(){

          echo "hello,world ";

        }

      }

      //traitOne

      trait traitOne{

        public function test(){

          echo "this is trait one";

        }

        public function testOne(){

          echo "one
    ";

        }

      }

      //traitTwo

      trait traitTwo{

        // public function test(){

          // echo "this is trait two!";

        // }

        public function testTwo(){

          echo "Two
    ";

        }

      }

      //继承基本类,并use trait

      class myCode extends basicTest{

        use traitOne,traitTwo;

        public function test(){

          echo "hehaha!!
    ";

        }

      }

      $obj = new myCode();

      $obj->testTwo();

    注意:

    优先级:自身方法>trait的方法>继承的方法(就是这样子的。)
    如果我们打开上述代码中的注释,会报错,因为两个trait中的方法重名了。

  • 相关阅读:
    Python学习---文件操作的学习1208
    Python实例---三级菜单的实现[high]
    Python实例---三级菜单的实现[low]
    Python学习---Python下[set集合]的学习
    Python学习---深浅拷贝的学习
    Python学习---Python下[字符串]的学习
    Python学习---Python下[字典]的学习
    Python实例---简单购物车Demo
    Python学习---Python下[元组]的学习
    Python学习---Python下[列表]的学习
  • 原文地址:https://www.cnblogs.com/djwhome/p/12532199.html
Copyright © 2020-2023  润新知