三大特性之继承

本文详细介绍了Objective-C中的继承与组合概念,包括如何通过继承来实现代码复用,建立类间关系,以及如何利用组合来构建类的内部结构。同时,文章还探讨了Objective-C中的内存管理机制ARC,并解释了super关键字的使用方法。

继承代表两个类之间的关系

Dog:Animal  类似java中的 Dog extends Animal

Dog *pDog=[Dog new];类似java中的 Dog dog=new Dog();

[pDog bark];类似java中的 dog.brak();

 

ARC机制,自动生成内存管理代码

setAge:(int)age; <--setAge(int age);

 

继承的好处:

1、抽取重复代码

2、建立了类之间的关系

 

NSObject 的类方法 +new

另外一个root class NSProxy

 

注意点:

1、父类要写在前面

2、OC不允许父类和子类出现相同的成员变量 (java可以)

3、子类可以使用父类的成员方法 ,成员方法可以相同--方法的重写/覆写

覆盖父类以前的做法

也可以父类的方法声明,子类去实现

成员方法/类方法,先去子类找再去父类找

 

isa指针声明在NSObject中 isa成员变量

superclass指针

 

继承的使用场合:

1、当两个类有相同的属性和方法就可以将相同的东西抽取到一个父类中

2、当A类拥有B类的部分属性和方法的时候,可以考虑让B类继承A类

 

组合:Score成为Student的一部分(两者有相同的属性),继承在逻辑上讲不通,使用组合

Score * _score;作为Student的成员变量  -->组合

 

继承:A是B

组合:A拥有B

 

super关键字

因为子类如果覆写父类的方法就完全覆盖了,有时候我们想使用父类

方法中的一些代码/先执行父类方法,就可以使用 [super walk]

 

当前方法是类方法/成员方法,类方法中使用 super就调用父类的

类方法

 

super的使用场景

子类重写父类的方法想保留父类的一些行为

 

转载于:https://www.cnblogs.com/imChay/p/5590334.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值