熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

php中抽象類和接口的概念以及區別

2013-11-15 12:37:47  來源: PHP編程 
本篇文章是對php中抽象類和接口的概念以及區別進行了詳細的分析介紹需要的朋友參考下   復制代碼 代碼如下:
//抽象類的定義
abstract class ku{ //定義一個抽象類
abstract function kx();

}
function aa extends ku{
//實現抽象類的方法
function kx(){
echo sdsf;
}
}
//使用方法
$aa=new aa;
$aa>kx();
//定義一些方法子類必須完全實現這個抽象中所有的方法
//不能從抽象類創建對象它的意義在於被擴展
//抽象類通常具有抽象方法方法中沒有大括號
//抽象方法不必實現具體的功能由子類來完成
//在子類實現抽象類的方法時其子類的可見性必須大於或等於抽象方法的定義
//抽象類的方法可以有參數也可以為空
//如果抽象方法有參數那麼子類的實現也必須有相同的參數個數
//////////////////////////////接口類的定義
interface Shop{
public function buy($gid);
public function sell($gid);
abstract function view($gid);
}
//如果要使用接口必須定義接口類中的所以方法少一個都不可以(abstract除外)
//這樣如果在一個大項目中不管別人怎麼去做下面的方法但是他必須實現本接口中的所有方法才可以!
//例實現上面的接口的一種方法
class BaseShop implements Shop{
public function buy($gid){
echo 你購買了ID為 : $gid 的商品;
}
public function sell($gid){
echo 你購賣ID為 : $gid 的商品;
}
public function view($gid){
echo 你浏覽了ID為 : $gid 的商品;
}
}
//接口的多重繼承示例
<?php
interface staff_i{ //接口
function setID();
function getID();
}
interface staff_i{ //接口
function setName();
function getName();
}
class staff implements staff_istaff_i{
private $id;
private $name;
function setID($id){
$this>id = $id;
}
function getID(){
return $this>id;
}
function setName($name){
$this>name = $name;
}
function getName(){
return $this>name;
}
function otherFunc(){ //這是一個接口中不存在的方法
echo “Test”;
}
}
?>

  
他們的不同點
抽象類中可以有非抽象的方法而接口中只能夠有抽象的方法!
一個類可以繼承多個接口而一個類只能繼承一個抽象類!
接口的使用方式通過implements關鍵字進行抽象類則是通過繼承extends關鍵字進行!


From:http://tw.wingwit.com/Article/program/PHP/201311/21318.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.