美文网首页
2.0 多态的实现

2.0 多态的实现

作者: 还好我不懂 | 来源:发表于2015-12-03 16:47 被阅读25次

    本小节知识点:

    1. 【掌握】如何实现多态
    2. 【了解】多态的原理
    3. 【掌握】多态的注意点

    1.如何实现多态

    • Animal是父类,子类有Cat 和 Dog,子分别重写了父类中的eat方法;实例化对象的时候可以用下
      面的方法:
    Animal *animal = nil;
    
    //实例化猫的对象
    animal = [Cat new];
    [animal eat];
    
    //实例化狗的对象
    animal = [Dog new];
    [animal eat];
    

    2.多态的原理

    • 动态绑定:
      • 动态类型能使程序直到执行时才确定对象的真实类型
      • 动态类型绑定能使程序直到执行时才确定要对那个对象调用的方法
    • OC不同于传统程序设计语言,它可以再运行时加入新的数据类型和新的程序模块:动态类型识别,动态绑定,动态加载
    • id类型:通用对象指针类型,弱类型,编译时不进行具体类型检查

    3.多态的注意点

    • 1)如果存在多态,父类是可以访问子类特有的方法
    假设 子类 Dog 有一个特有的方法bark
    [dog bark];
    Animal *an2 = [Dog new];
    [(Dog*)an2 bark]; //把父类的指针,强制类型转换
    
    
    • 2)如果不存在多态,父类是不可以访问子类特有的方法的
    Animal *an3 = [Animal new];
    [(Dog*)an3 bark]; //错误的,不能强制转换
    

    相关文章

      网友评论

          本文标题:2.0 多态的实现

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