OC--继承的相关特性
2015-08-31 22:33
169 查看
继承的相关特性
方法重写
在子类中实现与父类中同名的方法,称之为方法重写;重写以后当给子类发送这个消息的时候,执行的是在子类中重写的那个方法,而不是父类中的方法;
如果想在子类中调用被子类重写的父类的方法,可以通过super关键字;
[super 父类方法名称];
方法重写后,子类对象调用该方法,会直接调用子类中的方法,不会调用父类中的方法.
方法重写的使用场景
当从父类继承的某个方法不适合子类,可以在子类中重写父类的这个方法。继承中方法的调用顺序
1、在自己类中找;2、如果没有,去父类中找;
3、如果父类中没有,就去父类的父类中;
4、如果父类的父类也没有,就还往上找,直到找到基类(NSObject);
5、如果NSObject都没有就报错了.
如果找到了就执行这个方法,就不再往后查找了.
继承的注意事项
子类不能定义和父类同名的成员变量,私有成员变量也不可以;因为子类继承父类,子类将会拥有父类的所有成员变量,若在子类中定义父类同名成员变量 属于重复定义。OC类支持单一继承,不支持多继承;也就是说一个类只能有一个直接父类
OC类支持多层继承
super关键字
super是个编译器的指令符号,只是告诉编译器在执行的时候,去调谁的方法.super的作用
1.直接调用父类中的某个方法;2.super在对象方法中,那么就会调用父类的对象方法;super在类方法中,那么就会调用父类的类方法.
super的使用场景
子类重写父类的方法时想保留父类的一些行为.想在子类中调用父类的方法时可以使用super;
想在给父类方法进行扩展的同时保留父类的方法,那么可以使用super调用父类同名的方法.
相关文章推荐
- PostgreSQL教程(三):表的继承和分区表详解
- Lua面向对象之类和继承浅析
- 浅析Ruby中继承和消息的相关知识
- 设计引导--一个鸭子游戏引发的设计理念(多态,继承,抽象,接口,策略者模式)
- C#语言主要特性总结
- C++实现不能被继承的类实例分析
- js继承 Base类的源码解析
- Javascript 面向对象 继承
- require.js深入了解 require.js特性介绍
- JavaScript 继承使用分析
- Javascript面向对象编程(二) 构造函数的继承
- javascript面向对象之Javascript 继承
- JavaScript 对象、函数和继承
- Javascript writable特性介绍
- 关于JavaScript的面向对象和继承有利新手学习
- JavaScript 继承详解(一)
- JavaScript 继承详解(二)
- javascript继承的六大模式小结
- JavaScript中的原型和继承详解(图文)
- JavaScript中继承用法实例分析