2、说说多态

<?php 
    abstract class Tiger {
        public abstract function climp();
    }

    class XTiger extends Tiger{
        public function climp(){
            echo '摔下来';
        }
    }

    class MTiger extends Tiger{
        public function climp(){
            echo '爬到树顶';
        }
    }

    class Cat{
        public function climp(){
            echo '飞到天上';
        }
    }

    class Client {
        public static function call(Tiger $animal){
            $animal->climp();
        }
    }

    Client::call(new XTiger);
    Client::call(new MTiger);

为什么先说多态? (Polymorphism)
答: 多态相对封装与继承,理解稍微复杂一些.    更重要的是,    
通过PHP,Java多态的不同体现,体会静态语言与动态语言的巨大差异
而这个差异巨大,影响到设计模式. 对于动态语言,不可照搬java,C++中的设计模式 

多态(Polymorphism) 是一个生物学上的概念, 指同一特种的多种表现形态. 
如:西伯利亚虎一般重210-260公斤,而孟加拉虎一般180-230公斤 
在面向对象中,指某种对象实例的不同表现形态. 多态特点,在静态语言中体现的更为明显. 

西伯利亚虎不能爬树 孟加拉虎可以爬树 那么老虎,到底能否爬树? [ 请看java与PHP演示 体会静态与动态的巨大差异 ]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值