一、继承的注意事项:
1)子类中不能定义与父类同名的成员变量,但是可以继承父类的变量
(除了定义在父类中的私有成员变量)
2)OC类中,支持单一继承,但是不支持多继承
@interface Dog :Animal,Cat {}(❌)
3)OC支持多层继承
二、继承体系中方法调用
1、在自己类中寻找
2、如果没有,在父类中寻找
3、如果父类中没有,在父类的父类中找
4、如果父类的父类也没有,就继续往上找,直到找到基类(如NSObject)
5、如果基类中也没有的话,就直接报错
三、总结:
1、继承的目的:
降低代码冗余
2、继承的效果:
子类从父类中继承,就代表子类无条件拥有父类的全部成员
3、什么时候需要使用继承:
当多个类具有相同的成员时,可以使用继承减少代码冗余
把共同的成员定义在父类,让子类去继承
4、继承的准则:
不要为了仅仅只是得到某一类的成员而去继承
不要为了继承而继承
语法上其实人意的类之间都是可以继承的
情理、逻辑上并不是任意的类之间都可以继承的
只有满足isa关系对象的才可以拥有继承关系
当A类时1个B类的时候,这时候A类才可以从B类中去继承
只有子类是1个父类的时候,才可以继承
5、继承的特点:
1)单根性:
OC中的类只能有1个父类,不能有多个父类
2)传递性:
如果A类继承自B类,B类又继承自C类
那么A类同时继承B类和C类
当然父类无法继承子类