首頁  >  文章  >  後端開發  >  php:物件繼承和多態的實例

php:物件繼承和多態的實例

黄舟
黄舟原創
2017-07-02 11:22:251096瀏覽

本例用MyObject類別產生了兩個子類別:Book和Elec,兩個子類別用不同的建構方法實例化了兩個物件c_book和h_elec,並輸出資訊

<?php

	/*父类*/
	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 &#39;这句话不会显示。&#39;;
		}
		
	}
	/*  子类Book  */
	class Book extends MyObject{
		
		public $book_type;									//类别
		
		function construct($type,$num){
			
			$this -> book_type = $type;
			$this -> object_num = $num;
		}
		
		function showMe(){
			
			return &#39;本次新进&#39;.$this -> book_type.&#39;图书&#39;.$this -> object_num.&#39;<br>&#39;;
		}
	}
	/*  子类Elec  */
	class Elec extends MyObject{
	
		function showMe(){
			
			return &#39;热卖商品&#39;.$this -> object_name.&#39;<br>原价:&#39;.$this -> object_price.&#39;<br>特价:&#39;.$this -> object_agio * $this -> object_price;
		}
	}
	/*	实例化对象	*/
	$c_book = new Book(&#39;计算机类&#39;,1000);
	$h_elec = new Elec(&#39;待机王XX手机&#39;,1200,3,0.8);
	echo $c_book->showMe()."<br>";
	echo $h_elec->showMe();
	
	
?>

(1)子類別繼承了父類別的所有成員變數和方法,包括建構子。這就是繼承的實作

(2)當子類別被建立時,PHP會先在子類別中尋找建構方法。如果子類別有自己的建構方法,PHP會優先呼叫子類別的建構方法;當子類別沒有時,PHP則會呼叫父類別的建構方法

(3)子類別重寫了父類的方法showMe(),所以兩個物件雖然呼叫的都是showMe()方法,但回傳的結果卻是兩個不同的資訊。這就是多態的體現


以上是php:物件繼承和多態的實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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