首頁  >  文章  >  後端開發  >  php物件導向之什麼是抽象類別?及抽象類別的作用

php物件導向之什麼是抽象類別?及抽象類別的作用

巴扎黑
巴扎黑原創
2017-04-17 14:39:062067瀏覽

本篇我們介紹下什麼是抽象類別以及用法簡介。

什麼是抽象類別?

抽象類別不能被實例化,同樣方法也沒有實現,只是提供方法聲明,沒有具體實現。抽象類別只能作為其他類別的父類別使用。抽象類別使用abstract關鍵字來聲明,語法格式為:

abstract class AbstractName{
.....
}

注意:

#抽象類別和普通類別也差不多,都有成員變數和成員方法。但還是有差別的。包含抽象方法的類別必須本身是抽象的。抽象方法是沒有方法體的,他的功能只能在子類別中完成。抽象方法也是使用abstract關鍵字來修飾,格式為:

abstract function abstractName();

抽象方法的後面是分號,而不是跟花括號"{}"。

抽象類別的作用是什麼呢?

在我們的類別當中,有很多類別會被不斷的重複寫,這個時候我們可以用抽象類別的概念,寫一個公共的類,實例化之後我們可以重複去調用。抽象類別就像是一個大的倉庫,裡面有很多東西,不是要求你倉庫中的東西你都要使用,當你需要的時候就可以去呼叫它。如果你覺得倉庫裡的東西你不滿意,那麼,你也可以自己去重新造一個。

抽象方法和抽象類別主要用於複雜的類別層次關係中,該層次關係需要確保每個子類別都包含並重載了某些特定的方法,這也可以透過介面來實現。

抽象類別實例講解:

<?php
header("content-type:text/html;charset=utf-8");
abstract class Member{
abstract function vipMember($name,$level,$money);
}
class Member1 extends Member{
function vipMember($name,$level,$money){
echo "您在PHP中文网的会员名是:" . $name;
echo &#39;<br/>&#39;;
echo "您的会员等级是:" . $level;
echo &#39;<br/>&#39;;
echo "您发文章赚取的钱是:" . $money;
}
}
class Member2 extends Member{
function vipMember($name,$level,$money){
echo "您在PHP中文网的会员名是:" . $name;
echo &#39;<br/>&#39;;
echo "您的会员等级是:" . $level;
echo &#39;<br/>&#39;;
echo "您要提取" . $money . "元";
}
}
$member1 = new Member1();
$member2 = new Member2();
$member1->vipMember(&#39;大白&#39;,&#39;三级&#39;,&#39;24.35&#39;);
echo &#39;<br/>&#39;;
echo &#39;<hr/>&#39;;
$member2->vipMember(&#39;小明&#39;,&#39;五级&#39;,&#39;84.73&#39;);

先建立一個會員抽象類,該抽象類別包含一個抽象方法vipMember。為抽象類別產生兩個子類別Member1,Member2,分別在兩個子類別中實作抽象方法。最後實例化兩個對象,呼叫實作後的抽象方法,最後輸出。

以上是php物件導向之什麼是抽象類別?及抽象類別的作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn