您的位置:首页 > 编程语言 > PHP开发

PHP 对象继承和多态的实例

2013-05-20 20:39 344 查看
本例用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 '这句话不会显示。';
}

}
/*  子类Book  */
class Book extends MyObject{

public $book_type;									//类别

function __construct($type,$num){

$this -> book_type = $type;
$this -> object_num = $num;
}

function showMe(){

return '本次新进'.$this -> book_type.'图书'.$this -> object_num.'<br>';
}
}
/*  子类Elec  */
class Elec extends MyObject{

function showMe(){

return '热卖商品'.$this -> object_name.'<br>原价:'.$this -> object_price.'<br>特价:'.$this -> object_agio * $this -> object_price;
}
}
/*	实例化对象	*/
$c_book = new Book('计算机类',1000);
$h_elec = new Elec('待机王XX手机',1200,3,0.8);
echo $c_book->showMe()."<br>";
echo $h_elec->showMe();

?>


(1)子类继承了父类的所有成员变量和方法,包括构造函数。这就是继承的实现

(2)当子类被创建时,PHP会先在子类中查找构造方法。如果子类有自己的构造方法,PHP会优先调用子类的构造方法;当子类没有时,PHP则会调用父类的构造方法

(3)子类重写了父类的方法showMe(),所以两个对象虽然调用的都是showMe()方法,但返回的结果却是两个不同的信息 。这就是多态的体现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: