欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-09-05 07:53:47
本文实例讲述了php面向对象程序设计之接口的继承定义与用法。分享给大家供大家参考,具体如下: 在php5中,接口是可以继承自另外一个接口的。这样代码的重用更有效了。要注意...

本文实例讲述了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程序设计有所帮助。