php使用类继承解决代码重复的问题
本文实例讲述了php使用类继承解决代码重复的问题。分享给大家供大家参考。具体分析如下:
继承直白地说就是给一个类建一个或多个子类,要创建子类就必须在类声明中使用extends关键字,新类名在前,extends在中,父类名在后。
下例中,我们创建两个新类,BookProduct和Cdproduct,它们都继承自ShopProduct类。
<?php header('Content-type:text/html;charset=utf-8'); //从这篇开始,类名首字母一律大写,规范写法 classShopProduct{ //声明类 public$numPages; //声明属性 public$playLenth; public$title; public$producerMainName; public$producerFirstName; public$price; function__construct($title,$firstName,$mainName,$price,$numPages=0,$playLenth=0){ $this->title=$title; //给属性title赋传进来的值 $this->producerFirstName=$firstName; $this->producerMainName=$mainName; $this->price=$price; $this->numPages=$numPages; $this->playLenth=$playLenth; } functiongetProducer(){ //声明方法 return"{$this->producerFirstName}"."{$this->producerMainName}"; } functiongetSummaryLine(){ $base="{$this->title}({$this->producerMainName},"; $base.="{$this->producerFirstName})"; return$base; } }
classCdProductextendsShopProduct{ functiongetPlayLength(){ return$this->playLength; } functiongetSummaryLine(){ $base="{$this->title}({$this->producerMainName},"; $base.="{$this->producerFirstName})"; $base.=":playingtime-{$this->playLength})"; return$base; } }
classBookProductextendsShopProduct{ functiongetNumberOfPages(){ return$this->numPages; } functiongetSummaryLine(){ $base="{$this->title}({$this->producerMainName},"; $base.="{$this->producerFirstName})"; $base.=":pagecont-{$this->numPages})"; return$base; } } ?>