1.方法原型:(prototype)是指方法的定義中剔除方法體之後的簽名。它包括存取級別、函式關鍵字,函式名稱和引數。它不包 括({})或括號內的任何程式碼。例如:public function myfunction($parameter); 就是一個方法原型。 2.抽象類沒有為它所宣告的方法定義方法體,所以使用new是不能直接建立它的例項的。要建立例項就要寫一個類extends這個抽 象類,並實現它所宣告的所有方法。
3.要充分發揮抽象類的特點,須做到: 1).如果一個類包含一個抽象方法就必須宣告為抽象類; 2).宣告為抽象的方法,在實現時必須包含相同的或者更低的訪問許可權。例如: abstrct class abstractFunction{ protected function Afunction($paramter); protected function Bfunction($paramter);
} class instanceFunction extends abstractFunction{ protected function Afunction($paramter){...} //或者public function Afunction($paramter){...} public function Bfunction($paramter){...}//或者protected function Bfunction($paramter){...}
//而不能寫成private function Bfunction($paramter){...} } 3).不能用new來建立抽象類的例項。 4).被宣告為抽象類的方法不能包含方法體。 5).如果extends的類被宣告為abstract,則可以不用實現所有的抽象方法。 4.抽象類的使用: 定義一個抽象類: abstract class Car{ abstract function getTheCarType($car); } 要建立一個抽象類例項,必須繼承這個抽象類並實現它: class FastCar extends Car{ public function getTheCarType($car){ return fastType;} } 建立一個類來使用這個公共類: class MyCar { protected $carType; protected $carMaxSpeed; protected $carLimitSpeed; public function __construct($carType = 'fmailyUse',$carLimitSpeed = '200'){ $this->carType = $carType; $this->carMaxSpeed = array(); $this->carLimitSpeed = $carLimitSpeed; } public function jundgeSpeed(){ if($this->careType == 'fmailyUse' && $this->carLimitSpeed >= '200'){ echo "It's very deangerous .if the car for fmaily,it's speed should < 200"; }else{ echo "good ! Now,the speed is safe."; } } } 使用抽象類: $myCar = new MyCar('fmailyUse'); $myCar->jundgeSpeed($careType,300);