ios多态的感悟

来源:互联网 发布:开淘宝网店怎么弄客服 编辑:程序博客网 时间:2024/05/19 11:44

       刚接触多态我想大部分人都是在Animal类开始的吧,第一感觉就是多态并没有使程序简化,可有可无,因为main函数里的Animal *cat=[Cat new]; 完全可以用Cat *cat=[Cat new]取代,其实不然!即使这样在-(void)feed:(Animal *)animal方法中照样使用着多态,具体体现在[animal eat];语句中,eat方法已经而且必须在Animal类以及他的子类Cat和Dog类中都有定义,这就是多态的体现,而且如果cat和dog吃的方式、工具、食物都一样的话,完全可以将相同的东西写在feed方法中[animal eat];语句的前面,没必要在Cat和Dog类中的eat方法中都写一边。

//Animal中:-(void)feed:(Animal *)animal{             [animal eat];}//Cat中:- (void)eat{   NSLog(@"Cat eat!");}//Dog中:- (void)eat{   NSLog(@"Dog eat!");}


0 0
原创粉丝点击