OC中继承子类对象调用方法机制 子类对象访问父类中的实例变量

Objective-C中,子类对象调用方法遵循查找机制,先在自身类查找,未找到则沿继承链向上直至NSObject。子类继承时获取所有超类实例变量,通过地址偏移访问。重写用于在子类实现父类未具体实现的方法,以实现多态。使用`super`关键字可直接调用父类方法或实例变量,`NSLog`的`%@`会调用对象的`description`方法输出。
摘要由CSDN通过智能技术生成

在继承中,子类对象如何调用到正确方法的机制

       每一个Objective - C对象都有一个隐藏的指针指向类的代码,当向一个对象发送消息的时候,当前的对象会首先在当前类里去查找相应的方法,如果找到的话,直接执行代码;若没有找到,则去父类里找对应的方法,如果找到的话,就会执行。如果找不到继续按照这样的原则,沿着继承链向上查找,直到根类NSObject(这个类是Objective - C所有类的根类),如果在这个NSObject类中仍找不到相应的方法,那么程序直接崩溃掉。


在继承的语法中,子类访问父类中的实例变量

  创建一个新类的时候,其对象首先从自身的超类继承实例变量,然后添加自己的实例变量。在这种情况下,每一个子类对象的指针指向对象的最顶端。也就是沿继承链所包含的所有对象的最开始位置,这样编译就可以通过地址的偏移来计算所能访问到所有的超类的实例变量。

重写的概念

       重写的概念,只存在于继承语法中。指的是:父类声明一个方法,但是父类并没有真正意义的去实现这个方法,而是在子类中真正的实现方法的功能,这种形式就叫做对这个方法的重写。(重写方法的目的是为了实现面向对象编程里的多态)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值