• 技术文章 >后端开发 >PHP问题

    PHP是单继承还是多继承

    王林王林2019-09-19 17:56:43原创1655

    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\n";
        }
      }
      //traitOne
      trait traitOne{
        public function test(){
          echo "this is trait one";
        }
        public function testOne(){
          echo "one<br />";
        }
      }
      //traitTwo
      trait traitTwo{
        // public function test(){
          // echo "this is trait two!";
        // }
        public function testTwo(){
          echo "Two<br />";
        }
       }
      //继承基本类,并use trait
      class myCode extends basicTest{
        use traitOne,traitTwo;
        public function test(){
          echo "hehaha!!<br />";
        }
      }
    
      $obj = new myCode();
      $obj->testTwo();

    注意:

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

    推荐教程:PHP视频教程

    以上就是PHP是单继承还是多继承的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php 单继承 多继承
    上一篇:php文件怎样打开和运行 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• PHP如何使用接口实现多重继承?(代码示例)• PHP如何使用Trait特性实现多重继承?(代码示例)• php怎么实现多继承• php支持多继承吗
    1/1

    PHP中文网