美文网首页
iOS开发:什么是多态

iOS开发:什么是多态

作者: Hanfank | 来源:发表于2017-02-07 14:36 被阅读359次

    什么是多态:
    多态就是父类指针指向子类指针。
    什么意思呢?
    首先,子类继承父类
    那么就子类可以调用父类的东西
    相当于把父类的东西在子类复写了一遍
    那么这个时候我在子类把在父类继承过来的的东西自己写一遍,并且改了继承过来方法里面的东西
    则是重写了父类的方法
    这个时候我要调用父类的指针调用子类对象的方法,就会首先在子类里面查找,找到之后就打印出来,如果没有找到就会在父类里面查找,然后打印出来。
    这里面如果子类自己增加方法,而父类没有,就不能调用,因为父类里面没有。
    也就是说父类和子类的方法要一一对应。
    父类可以增加方法,而子类自己增加,就算是自己增加,父类指针也不能调用新增的方法。
    看下面的代码:

    mian 函数

    #import 
    #import "Animal.h"
    #import "Pig.h"
    #import "Dog.h"
    int main(int argc, const char * argv[]) {
    @autoreleasepool {
      Animal *A =[Animal new];
      A=[Pig new];
      [A eat];
      [A walk];
      A=[Dog new];
      [A eat];
      [A walk];
      return 0;
    
            }
    
    }
    

    动物的方法也就是父类

    父类里面写的方法子类可以继承过去

    #import 
    @interface Animal : NSObject
    -(void)eat;
    -(void)walk;
    @end
    #import "Animal.h"
    @implementation Animal
    -(void)eat{
      NSLog(@"吃东西");
    }
    -(void)walk;
    {
      NSLog(@"走路");
    }
    
    @end
    

    Pig类继承了动物类

    #import "Animal.h"
    @interface Pig : Animal//继承了Animal
    @end
    #import "Pig.h"
    @implementation Pig
    -(void)eat
    {
    NSLog(@"大口吃东西");
    }
    -(void)sleep;
    {
    NSLog(@"睡觉");
    }
    @end
    

    相关文章

      网友评论

          本文标题:iOS开发:什么是多态

          本文链接:https://www.haomeiwen.com/subject/oftmittx.html