PHP继承

<?php

	class ShopProduct {
		private $title;
		private $producerMainName;
		private $producerFirstName;
		protected $price;
		private $discount = 0;

		public function __construct($title, $firstName, $mainName, $price) {
			$this->title = $title;
			$this->producerFirstName = $firstName;
			$this->producerMainName = $mainName;
			$this->price = $price;
		}

		public function getProducerFirstName() {
			return $this->producerFirstName;
		}

		public function getProducerMainName() {
			return $this->producerMainName;
		}

		public function setDiscount($num) {
			$this->discount = $num;
		}

		public function getDiscount() {
			return $this->discount;
		}

		public function getTitle() {
			return $this->title;
		}

		public function getPrice() {
			return ($this->price - $this->discount);
		}

		public function getProducer() {
			return "{$this->producerFirstName}" . " {$this->producerMainName}";
		}

		public function getSummaryLine() {
			$base = "{$this->title} ( {$this->producerMainName}, ";
			$base .= "{$this->producerFirstName) }";
			return $base;
		}
	}

	class CdProduct extends ShopProduct {
		private $playLength = 0;

		public function __construct($title, $firstName, $mainName, $price, $playLength) {
			parent::__construct($title,$firstName,$mainName,$price);
			$this->playLength = $playLength;
		}

		public function getPlayLength() {
			return $this->playLength;
		}

		public function getSummaryLine() {
			$base = parent::getSummaryLine();
			$base .= ": playing time - {$this->playLength}";
			return $base;
		}
	}

	class BookProduct extends ShopProduct {
		private $numPages = 0;

		public function __construct($title,$firstName,$mainName,$price,$numPages) {
			parent::__construct($title,$firstName,$mainName,$price);
			$this->number=$numPages;
		}

		public function getNumberOfPages() {
			return $this->numPages;
		}

		public function getSummaryLine() {
			$base = parent::getSummaryLine();
			$base .= ": page count - {$this->numPages}";
			return $base;
		}

		public function getPrice() {
			return $this->price;
		}
	}
?>


摘录于:《深入PHP面向对象、模式与实践》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值