<?php /** * Page37 Class * @authors haidong (admin@zhe700.net) * @date 2015-03-25 11:21:21 * @version $Id$ */ class ShopProduct{ private $title; private $producerMainName; private $producerFirstName; protected $price; private $discount = 0; public function __construct($title,$producerMainName,$producerFirstName,$price){ $this->title = $title; $this->producerMainName = $producerMainName; $this->producerFirstName = $producerFirstName; $this->price = $price; } public function getProducerMainName(){ return $this->producerMainName; } public function getProducerFirstName(){ return $this->producerFirstName; } public function getDiscount(){ return $this->discount; } public function serDiscount($discount){ return $this->discount = $discount; } public function getPrice(){ return ($this->price - $this->discount); } public function getProducer(){ return "{$this->producerFirstName} {$this->producerMainName}"; } public function getSummaryLine(){ return "{$this->title} ({$this->producerFirstName} {$this->producerMainName})"; } } class CdProduct extends ShopProduct{ private $playLength; public function __construct($title,$producerMainName,$producerMainName,$price,$playLength){ parent::__construct($title,$producerMainName,$producerMainName,$price); $this->playLength = $playLength; } public function getPlayLength(){ return $this->playLength; } public function getSummaryLine(){ $base = parent::getSummaryLine(); $base .= "play time ({$this->playLength})"; return $base; } } class BookProduct extends ShopProduct{ private $numPages; public function __construct($title,$producerMainName,$producerMainName,$price,$numPages){ parent::__construct($title,$producerMainName,$producerMainName,$price); $this->numPages = $numPages; } public function getNumPages(){ return $this->numPages; } public function getSummaryLine(){ $base = parent::getSummaryLine(); $base .= "total pages ({$this->numPages})"; return $base; } } $cd = new CdProduct('CD','John','Smith',79,90); echo $cd->getSummaryLine(); $book = new BookProduct('Book','Bob','zhang',49,360); echo $book->getSummaryLine();
加入了权限的控制