幫忙看下這段代碼,為何沒輸出
/*父類*/
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.'本
';
}
}
/*子類Elec*/
class Elec extends MyObject{
function showMe(){
return'熱賣圖書:'.$this->object_name.'
原價:'.$this->object_price.'
特價:'.$this->object_price*$this->object_agio;
}
}
/*執行個體化對象*/
$c_book=new Book('電腦類',1000);
$h_elec=new Elec('PHP函數參考大全',98,3,0.8);
echo $c_book->showMe()."
";
//echo $h_elec->showMe();
能輸出的語句已經注釋,沒注釋的那句echo $c_book->showMe()."
";
為何沒有輸出。還有就是‘這句話不會顯示’不注釋時為何還會輸出?多謝!
------解決方案--------------------
Book::_showMe() 方法的確可以輸出,但你調用的是 showMe() ,這個方法是繼承自MyObject得來的,而你又注釋掉了echo ,當然沒有任何輸出。
------解決方案--------------------
引用:
Book::_showMe() 方法的確可以輸出,但你調用的是 showMe() ,這個方法是繼承自MyObject得來的,而你又注釋掉了echo ,當然沒有任何輸出。
原來如此
------解決方案--------------------
class MyObject{
function showMe(){
//這裡沒有定義輸出,所以 showMe 不會有輸出
//echo'這句話不會顯示。';
}
}
class Book extends MyObject{ //並沒有重載showMe,所以showMe沒有輸出
function _showMe(){
return'本次新進'.$this->book_type.'圖書'.$this->object_num.'本
';
}
}
class Elec extends MyObject{//重載了showMe,所以showMe有輸出
function showMe(){
return'熱賣圖書:'.$this->object_name.'
原價:'.$this->object_price.'
特價:'.$this->object_price*$this->object_agio;
}
}