淺析php中抽象類和接口的概念以及區(qū)別
更新時間:2013年06月27日 15:31:06 作者:
本篇文章是對php中抽象類和接口的概念以及區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
復(fù)制代碼 代碼如下:
//抽象類的定義:
abstract class ku{ //定義一個抽象類
abstract function kx();
......
}
function aa extends ku{
//實(shí)現(xiàn)抽象類的方法
function kx(){
echo 'sdsf';
}
}
//使用方法
$aa=new aa;
$aa->kx();
//1.定義一些方法,子類必須完全實(shí)現(xiàn)這個抽象中所有的方法
//2.不能從抽象類創(chuàng)建對象,它的意義在于被擴(kuò)展
//3.抽象類通常具有抽象方法,方法中沒有大括號
//4.抽象方法不必實(shí)現(xiàn)具體的功能,由子類來完成
//5.在子類實(shí)現(xiàn)抽象類的方法時,其子類的可見性必須大于或等于抽象方法的定義
//6.抽象類的方法可以有參數(shù),也可以為空
//7.如果抽象方法有參數(shù),那么子類的實(shí)現(xiàn)也必須有相同的參數(shù)個數(shù)
//////////////////////////////接口類的定義:
interface Shop{
public function buy($gid);
public function sell($gid);
abstract function view($gid);
}
//如果要使用接口,必須定義接口類中的所以方法少一個都不可以(abstract除外)。
//這樣如果在一個大項(xiàng)目中不管別人怎么去做下面的方法,但是他必須實(shí)現(xiàn)本接口中的所有方法才可以!
//例:實(shí)現(xiàn)上面的接口的一種方法
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_i1{ //接口1
function setID();
function getID();
}
interface staff_i2{ //接口2
function setName();
function getName();
}
class staff implements staff_i1,staff_i2{
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”;
}
}
?>
他們的不同點(diǎn):
1。抽象類中可以有非抽象的方法而接口中只能夠有抽象的方法!
2。一個類可以繼承多個接口,而一個類只能繼承一個抽象類!
3。接口的使用方式通過implements關(guān)鍵字進(jìn)行,抽象類則是通過繼承extends關(guān)鍵字進(jìn)行!
您可能感興趣的文章:
- php 接口類與抽象類的實(shí)際作用
- php接口和抽象類使用示例詳解
- 深入分析php中接口與抽象類的區(qū)別
- PHP中抽象類、接口的區(qū)別與選擇分析
- PHP中用接口、抽象類、普通基類實(shí)現(xiàn)“面向接口編程”與“耦合方法”簡述
- PHP OPP機(jī)制和模式簡介(抽象類、接口和契約式編程)
- PHP入門教程之面向?qū)ο蟮奶匦苑治?繼承,多態(tài),接口,抽象類,抽象方法等)
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)高級特性詳解(接口,繼承,抽象類,析構(gòu),克隆等)
- PHP抽象類與接口的區(qū)別詳解
- PHP中抽象類,接口功能、定義方法示例
- php抽象類和接口知識點(diǎn)整理總結(jié)
相關(guān)文章
慎用preg_replace危險(xiǎn)的/e修飾符(一句話后門常用)
要確保 replacement 構(gòu)成一個合法的 PHP 代碼字符串,否則 PHP 會在報(bào)告在包含 preg_replace() 的行中出現(xiàn)語法解析錯誤2013-06-06php中ob(Output Buffer 輸出緩沖)函數(shù)使用方法
php中ob(Output Buffer 輸出緩沖)函數(shù)使用方法...2007-07-07php實(shí)現(xiàn)圖片上傳時添加文字和圖片水印技巧
這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)圖片上傳時添加文字和圖片水印技巧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06PHP動態(tài)編譯出現(xiàn)Cannot find autoconf的解決方法
這篇文章主要介紹了PHP動態(tài)編譯出現(xiàn)Cannot find autoconf的解決方法,是PHP程序設(shè)計(jì)中經(jīng)常會遇到的問題,需要的朋友可以參考下2014-11-11提高define性能的php擴(kuò)展hidef的安裝和使用
在apache啟動前,PHP啟動時創(chuàng)建并初始化了這些常量,這樣就不需要在php里define常量了,性能自然沒有任何問題了!2011-06-06WampServer搭建php環(huán)境時遇到的問題匯總
這篇文章主要介紹了WampServer搭建php環(huán)境時遇到的常見問題的解決辦法匯總,以上所述就是本文的全部內(nèi)容了。2015-07-07PHP基于MySQLI函數(shù)封裝的數(shù)據(jù)庫連接工具類【定義與用法】
這篇文章主要介紹了PHP基于MySQLI函數(shù)封裝的數(shù)據(jù)庫連接工具類,結(jié)合實(shí)例形式分析了php封裝mysqli函數(shù)實(shí)現(xiàn)的數(shù)據(jù)庫操作類定義及連接、增刪改查數(shù)據(jù)庫等基本操作用法,需要的朋友可以參考下2017-08-08