三大特性之继承

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

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