面向对象编程中,类和接口是最基础的两个概念了。下面写一个简单的程序,分别演示使用基类与接口如何编写程序。程序很简单,不用过多解释,直接上代码了。广大程序员兄弟们一定能够明白是什么意思吧。
先是类的方式。
<?php
/**
* 类模式老婆
* Wife基类
*/
class Wife {
public function Cook($howToCook, $vegetableArray) {
$this->BuyVegetables ( $vegetableArray );
for($i = 0; $i < count ( $howToCook ); $i ++) {
//要吃的菜没有?买去
if (in_array ( $howToCook [$i] ["one"], $vegetableArray )) {
$this->BuyVegetables ( array ($howToCook [$i] ["one"] ) );
} else if (in_array ( $howToCook [$i] ["two"], $vegetableArray )) {
$this->BuyVegetables ( array ($howToCook [$i] ["two"] ) );
} else {
"做饭";
}
}
}
/**
* 买菜
* @param array $vegetableArray 菜名数组
*/
public function BuyVegetables($vegetableArray) {
"去菜场买菜";
}
/**
* 洗衣服
*/
public function WashClothes() {
"1_干洗外套";
"2_洗衣机洗裤子";
"3_手洗袜子";
}
/**
* 做家务
*/
public function DoHouseholdDuties() {
"1_扫地";
"2_拖地";
"3_擦桌子";
}
}
/**
* I类 继承Wife类
* @author Samuel
*/
class I extends Wife {
/**
*打游戏
*/
function PlayGames() {
"打游戏";
}
/**
* 打篮球
*/
function PlayBasketball() {
"打篮球";
}
/**
* 看电视
*/
function WatchTV() {
"看电视";
}
/**
* 煮饭
* @see Wife::Cook()
*/
function Cook() {
//哥哥今天要吃的菜
$howToCook = array (array ("one" => "猪肉", "two" => "芹菜", "operation" => "炒" ), array ("one" => "土豆", "two" => "牛肉", "operation" => "烧" ) );
$vegetableArray = array ("猪肉", "鸡蛋", "酸奶", "香菇", "芹菜", "土豆", "牛肉" );
parent::Cook ( $howToCook, $vegetableArray );
}
/**
* 洗衣服
* @see Wife::WashClothes()
*/
function WashClothes() {
//调用Wife类洗衣服方法
parent::WashClothes ();
}
/**
* 做家务
* @see Wife::DoHouseholdDuties()
*/
function DoHouseholdDuties() {
//调用Wife类做家务方法
parent::DoHouseholdDuties ();
}
}
?>
然后是接口的方式:然后是接口的方式:
<?php
/**
* 接口模式老婆
* Wife接口
*/
interface Wife {
/**
* 煮饭
* @param array $howToCook 菜的做法
* @param array $vegetableArray 需买的菜的数组
*/
function Cook($howToCook, $vegetableArray) {
}
/**
* 买菜
* @param array $vegetableArray 菜名数组
*/
function BuyVegetables($vegetableArray) {
}
/**
* 洗衣服
*/
function WashClothes() {
}
/**
* 做家务
*/
function DoHouseholdDuties() {
}
}
/**
* I类 实现Wife接口
* @author Samuel
*/
class I implements Wife {
/**
*打游戏
*/
function PlayGames() {
"打游戏";
}
/**
* 打篮球
*/
function PlayBasketball() {
"打篮球";
}
/**
* 看电视
*/
function WatchTV() {
"看电视";
}
/**
* 煮饭
* @param array $howToCook 菜的做法
* @param array $vegetableArray 需买的菜的数组
*/
public function Cook($howToCook, $vegetableArray) {
$this->BuyVegetables ( $vegetableArray );
for($i = 0; $i < count ( $howToCook ); $i ++) {
//要吃的菜没有?买去
if (in_array ( $howToCook [$i] ["one"], $vegetableArray )) {
$this->BuyVegetables ( array ($howToCook [$i] ["one"] ) );
} else if (in_array ( $howToCook [$i] ["two"], $vegetableArray )) {
$this->BuyVegetables ( array ($howToCook [$i] ["two"] ) );
} else {
"做饭";
}
}
}
/**
* 买菜
* @param array $vegetableArray 菜名数组
*/
public function BuyVegetables($vegetableArray) {
"去菜场买菜";
}
/**
* 洗衣服
*/
public function WashClothes() {
"1_干洗外套";
"2_洗衣机洗裤子";
"3_手洗袜子";
}
/**
* 做家务
*/
public function DoHouseholdDuties() {
"1_扫地";
"2_拖地";
"3_擦桌子";
}
}
?>