PHP物件導向開發之類的多態詳解_PHP教程

來源:互聯網
上載者:User
本文章來給各位同學介紹關於PHP物件導向開發之類的多態詳解,希望此教程對各位同學有所協助。

類的多態

1.多態的介紹和優勢。
2.運算子:instanceof。
3.多態的簡單應用。

1.多態的介紹和優勢

介紹:多態性是繼承抽象和繼承後,物件導向語言的第三特徵。

例子:USB介面,插上不同的東西會使用不同的功能。

優勢:OOP並不僅僅是把很多函數和功能集合起來,目的而是使用類,繼承,多態的方式描述我們生活中的一種情況。


2.運算子:instanceof

PHP一個類型運算子,用來測定一個給定的對象是否來自指定的對象
格式:

代碼如下 複製代碼

class A {}
class B {}

$thing = new A;
if ($thing instanceof A) {
echo "A";
}
if ($thing instanceof B) {
echo "B";
}

3.多態的簡單應用
執行個體1:

代碼如下 複製代碼

class A {

}

class B {

}

$new = new A;

if ($new instanceof A) {
echo "A";
}
if ($new instanceof B) {
echo "B";
}
?>

執行個體2:

代碼如下 複製代碼

interface MyUsb {
function type();
function alert();
}

class Zip implements MyUsb {
function type() {
echo "2.0";
}
function alert() {
echo "隨身碟驅動正在檢測……
";
}
}

class Mp3 implements MyUsb {
function type() {
echo "1.0";
}
function alert() {
echo "MP3驅動正在檢測……";
}
}

class MyPc {
function Add_Usb($what) {
$what->type();
$what->alert();
}

}
$p = new MyPc();

$zip = new Zip();

$mp3 = new Mp3();

$p->Add_Usb($zip);
$p->Add_Usb($mp3);
?>

補充一個執行個體213.29.11.16更新




繼承和多態


/* 父類 */
class MyObject{
public $object_name; //圖書名稱
public $object_price; //圖書價格
public $object_num; //圖書數量
public $object_agio; //圖書折扣
function __construct($name,$price,$num,$agio){ //建構函式
$this -> object_name = $name;
$this -> object_price = $price;
$this -> object_num = $num;
$this -> object_agio = $agio;
}
function showMe(){ //輸出函數
echo '這句話不會顯示。';
}
}
/* 子類Book */
class Book extends MyObject{ //MyObject的子類。
public $book_type; //類別
function __construct($type,$num){ //聲明構造方法
$this -> book_type = $type;
$this -> object_num = $num;
}
function showMe(){ //重寫父類中的showMe方法
return '本次新進'.$this -> book_type.'圖書'.$this->object_num.'本
';
}
}
/* 子類Elec */
class Elec extends MyObject{ //MyObject的另一個子類
function showMe(){ //重寫父類中的showMe方法
return '熱賣圖書:'.$this -> object_name.'
原價:'.$this -> object_price.'
特價:'.$this -> object_price * $this -> object_agio;
}
}
/* 執行個體化對象 */
$c_book = new Book('電腦類',1000); //聲明一個Book子類對象
$h_elec = new Elec('PHP函數參考大全',98,3,0.8); //聲明一個Elec子類對象
echo $c_book->showMe()."
"; //輸出Book子類的showMe()方法
echo $h_elec->showMe(); //輸出Elec子類的是showMe()方法
?>

http://www.bkjia.com/PHPjc/632641.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632641.htmlTechArticle本文章來給各位同學介紹關於PHP物件導向開發之類的多態詳解,希望此教程對各位同學有所協助。 類的多態 1.多態的介紹和優勢。 2.運算子...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.