最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之接口的繼承定義與用法詳解

 更新時(shí)間:2018年12月20日 11:26:23   作者:天涯海角路  
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之接口的繼承定義與用法,結(jié)合實(shí)例形式分析了php接口的概念、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之接口的繼承定義與用法。分享給大家供大家參考,具體如下:

在PHP5中,接口是可以繼承自另外一個(gè)接口的。這樣代碼的重用更有效了。要注意只有接口和接口之間使用 繼承關(guān)鍵字 extends。類實(shí)現(xiàn)接口必須實(shí)現(xiàn)其抽象方法,使用實(shí)現(xiàn)關(guān)鍵字 implements

下面的這個(gè)例子定義接口User,User有兩個(gè)抽象方法 getName和setName。 又定義了接口VipUser, 繼承自User接口,并增加了和折扣相關(guān)的方法getDiscount。

最后定義了類 Vip ,實(shí)現(xiàn)了VipUser接口。并實(shí)現(xiàn)了其中的三個(gè)方法。

<?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(){ //實(shí)現(xiàn)getName方法
    return $this->name;
  }
  public function setName($_name){//實(shí)現(xiàn)setName方法
    $this->name = $_name;
  }
  public function getDiscount(){//實(shí)現(xiàn)折扣方法.
    return $this->discount;
  }
}
?>

接口可以實(shí)現(xiàn)多繼承,這是接口很特殊的地方。注意下面的代碼和用法。

<?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 { //實(shí)現(xiàn)接口
  public function getName(){
    //.........
  }
  public function setName($_name){
    //.........
  }
  public function setNews($_news){
    //.........
  }
}
?>

抽象類實(shí)現(xiàn)接口,可以不實(shí)現(xiàn)其中的抽象方法,而將抽象方法的實(shí)現(xiàn)交付給具體能被實(shí)例化的類去處理。

<?php
interface User {
  public function getName();
  public function setName($_name);
}
//AbstractNormalUser 只實(shí)現(xiàn)了 User接口中的一個(gè)方法,
abstract class AbstractNormalUser{
  protected $name;
  public function getName(){
    return $this->name;
  }
}
//這里實(shí)現(xiàn)了接口的另外一個(gè)方法.
class NormalUser extends AbstractNormalUser {
  public function setName($_name){
    $this->name = $_name;
  }
}
$normalUser = new NormalUser();
$normalUser->setName("tom");
echo "name is ".$normalUser->getName();
?>

運(yùn)行結(jié)果:

name is tom

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

湄潭县| 塘沽区| 精河县| 屏南县| 大渡口区| 介休市| 南城县| 天门市| 阿克陶县| 鹤岗市| 临泉县| 阜阳市| 礼泉县| 合作市| 大丰市| 调兵山市| 金沙县| 宜昌市| 抚松县| 太谷县| 新乡市| 安康市| 朝阳区| 德钦县| 秦皇岛市| 屏南县| 安义县| 梧州市| 延长县| 吴桥县| 辰溪县| 家居| 栖霞市| 西和县| 南乐县| 云龙县| 巴彦淖尔市| 墨竹工卡县| 康定县| 綦江县| 平凉市|