PHP面向对象程序设计之接口的继承定义与用法详解分享!

本文实例讲述了PHP面向对象程序设计之接口的继承定义与用法。分享给大家供大家参考,具体如下:

在PHP5中,接口是可以继承自另外一个接口的。这样代码的重用更有效了。要注意只有接口和接口之间使用 继承关键字 extends。类实现接口必须实现其抽象方法,使用实现关键字 implements

下面的这个例子定义接口User,User有两个抽象方法 getName和setName。 又定义了接口VipUser, 继承自User接口,并增加了和折扣相关的方法getDiscount。

最后定义了类 Vip ,实现了VipUser接口。并实现了其中的三个方法。

  <?php  interface User {    public function getName();    public function setName($_name);  }  interface VipUser extends User {    public function getDiscount(); //添加了获得折扣的抽象方法.  }  class Vip implements VipUser {    private $name;    private $discount = 0.8;// 定义折扣变量    public function getName(){ //实现getName方法      return $this->name;    }    public function setName($_name){//实现setName方法      $this->name = $_name;    }    public function getDiscount(){//实现折扣方法.      return $this->discount;    }  }  ?>    

接口可以实现多继承,这是接口很特殊的地方。注意下面的代码和用法。

  <?php  interface User {    public function getName();    public function setName($_name);  }  interface Administrator {    public function setNews($_news);  }  //注意这里的多继承.  interface NewsAdministrator extends User,Administrator{  }  class NewsAdmin implements NewsAdministrator { //实现接口    public function getName(){      //.........    }    public function setName($_name){      //.........    }    public function setNews($_news){      //.........    }  }  ?>    

抽象类实现接口,可以不实现其中的抽象方法,而将抽象方法的实现交付给具体能被实例化的类去处理。

  <?php  interface User {    public function getName();    public function setName($_name);  }  //AbstractNormalUser 只实现了 User接口中的一个方法,  abstract class AbstractNormalUser{    protected $name;    public function getName(){      return $this->name;    }  }  //这里实现了接口的另外一个方法.  class NormalUser extends AbstractNormalUser {    public function setName($_name){      $this->name = $_name;    }  }  $normalUser = new NormalUser();  $normalUser->setName("tom");  echo "name is ".$normalUser->getName();  ?>    

运行结果:

name is tom

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

—-想了解PHP面向对象程序设计之接口的继承定义与用法详解分享!且更多的php教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/phpttorial/469171.html

(0)
上一篇 2020年10月25日
下一篇 2020年10月25日

精彩推荐