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; } } ?>