类与接口的一个有趣程序例子

面向对象编程中,类和接口是最基础的两个概念了。下面写一个简单的程序,分别演示使用基类与接口如何编写程序。程序很简单,不用过多解释,直接上代码了。广大程序员兄弟们一定能够明白是什么意思吧。

先是类的方式。

<?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_擦桌子";
    }
}
?>


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值