• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

抽象类,接口,trait

php 搞代码 4年前 (2022-01-22) 13次浏览 已收录 0个评论
文章目录[隐藏]

本篇文章是PHP中抽象类、接口和trait的一些内容,现在分享给大家,有需要的朋友也看以参考一下本篇文章的内容

抽象类

手册参考:http://php.net/manual/zh/language.oop5.abstract.php

定义:PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。且继承一个抽象类的时候,子类必须定义父类中的所有抽象方法(抽象类中可定义常量);

关键字 : abstract

<?phpabstract class AbstractClass{    const NAME='张三'; // 强制要求子类定义这些方法    abstract protected function getValue();    abstract protected function prefixValue($prefix);    // 普通方法(非抽象方法)    public function printOut() {        print $this->getValue() . "\n";    }}class ConcreteClass1 extends AbstractClass{    protected function getValue() {        return "ConcreteClass1".self::NAME;    }    public function prefixValue($prefix) {        return "{$prefix}ConcreteClass1";    }}$class1 = new ConcreteClass1;$class1->printOut();echo $class1->prefixValue('FOO_') ."\n";

接口

关键字 : interface

interface test1{  function say();}interface test2{  function see();}//接口继承接口 (继承接口时使用extends关键字)interface test3 extends test1,test2{    function sleep();}//类实现接口(实现接口时使用 implements关键字)class test implements test1,test2{  public function say(){}  public function see(){}  public function sleep()  {    echo '休息';  }}//接口中只能有抽象方法(不能定义常量,不能有构造方法,不能有普通方法),且接口类中所有未实现的方法需要在子类中全部实现

Trait 实现多继承

参考地址 https://www.cnblogs.com/smallrookie/p/6516010.html

定义:从PHP 5.4.0 开始 PHP 实现了一种新的代码复用方式。

<?phptrait A {    public function smallTalk() {        echo 'a';    }    public function bigTalk() {        echo 'A';    }}trait B {    public function smallTalk() {        echo 'b';    }    public function bigTalk() {        echo 'B';    }} class Aliased_Talker {    use A, B {        B::smallTalk insteadof A;  //使用B类的smallTalk方法(替换A方法)        A::bigTalk insteadof B;        B::bigTalk as talk;//重命名 B类中的bigTalk方法重命名为talk方法    }}$obj = new Aliased_Talker;$obj->smallTalk(); //b$obj->bigTalk(); //A$obj->talk();//B//trait不能实例化,不能有常量

相关推荐:

php面向对象接口,继承,抽象类,析构,克隆等高级特性实例详解

初识 p*本文来源gaodai#ma#com搞@代~码^网+搞代gaodaima码hp 接口

PHP中Trait的特性及作用分享

以上就是抽象类,接口,trait 的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:抽象类,接口,trait

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址