zoukankan      html  css  js  c++  java
  • QF——OC的多态,动态绑定及实现原理

    多态:

      封装,继承,多态是面向对象的三大特征。

      那多态到底是什么呢?

      多态:允许不同的类定义相同的方法,OC能自己判断当前类所对应的方法,不会混乱。

      动态类型:程序直到运行时才确定对象的类型。

      动态绑定:基于动态类型,程序直到运行时才能确定要执行的方法。

      多态:父类的指针可以指向子类的对象。这句话一定要深刻理解,请看几行代码:

      Animal * obj = [[Dog alloc] init]; 

      [obj eat];

      虽然该obj前面是Animal类,也就是说它被声明是Animal类的一个指针,但是在运行 [obj eat];这行时才知道它其实是Dog类型的,该obj指针实际上却是指向子类Dog的对象。也就说它在运行时,实际上调用的是Dog类里的那个eat方法。这就是多态。

     

     

    OC中动态能力的原理:

      OC中的每个对象默认都有一个属性,即isa指针。它指向了一个“类对象”(object-class),这个对象是在编译的时候由编译器生成的。它里面存储了类的信息,专门用来描述类。当程序运行时,它作为类的一个实例的属性,它会动态的告诉对象“你属于哪个类,你有什么方法等”。。。

    多态可以提高代码的灵活性和复用度。

    博客参考:点击进入

  • 相关阅读:
    第二次作业
    第一次软件测试
    activity带数据跳转
    学生注册界面
    activity_main
    购物商城
    2021.4.14JSP第七周作业
    2021.4.7jsp第六周作业
    2021.3.26JSP第四次作业
    2021/3/10 第二次JSP作业
  • 原文地址:https://www.cnblogs.com/wangerxiansheng/p/4322099.html
Copyright © 2011-2022 走看看