博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三章 继承
阅读量:6837 次
发布时间:2019-06-26

本文共 729 字,大约阅读时间需要 2 分钟。

通过扩展或者修改既有类来定义新类的方法叫做继承(inheritance)。

子类可以:追加新的方法;追加新的实例变量;重写定义父类中的方法

父类和子类是一种相对称呼

在集合用语中,子集指的是比较小的集合,但在类的情况下子类一般是父类的扩展。

OC有唯一根类,所有对象直接或间接继承了NSObject类中定义的各种属性

如果子类没有特别想继承的类,就需要指定NSObject为父类。

重写方法时,需要在接口中重新声明,在声明中加上注释方便理解    /*  override  */

子类必须包含父类接口的头文件。

super与self不同,并不确定指向某个对象,所以super只能被用于调用父类的方法,不能通过super完成赋值,也不能把方法的返回值指定为super。

重写init初始化方法的格式:

- (id)init

{

self = [super init];

if (self != nil) {

...

}

return self;

}

如果想在一个方法中调用当前类中定义的方法,可以利用self。但如果存在继承关系,通过self调用方法时要格外小心。

方法定义时的注意事项:

局部方法:

局部方法名最好添加固定前缀。

局部方法名不在接口文件中声明,在实现文件中直接实现,位置必须放在其他方法定义之前。

指定初始化方法:

就是能确保所有实例变量都能被初始化的初始化方法,这种方法是初始化的核心。除此之外还有一些通过封装来调用制定初始化方法的方法叫非指定初始化方法。

因为类的非指定初始化方法调用指定初始化方法完成初始化。所以子类重写父类的指定初始化方法,就一定要调用父类的指定初始化方法,而不能调用父类的非指定初始化方法,否则会造成递归循环调用,无法终止。

转载地址:http://sgqkl.baihongyu.com/

你可能感兴趣的文章
精确到秒的JQuery日期控件,jquery日历插件,jquery日期插件
查看>>
iOS UIlabel内容之后添加全文/展开
查看>>
NSDate的具体用法
查看>>
android项目中记录ListView滚动停止位置与设置显示位置
查看>>
Android 自定义电池控件
查看>>
设计模式之强大的接口适配器模式,继承Thread or 实现Runnable?
查看>>
10个CSS3属性
查看>>
web前端研发工程师编程能力成长之路
查看>>
2012 RDS Remote App 对于win7的支持问题
查看>>
linux 程序、动态库、静态库内部添加版本号和编译时间
查看>>
代码和XIB结合开发
查看>>
我的友情链接
查看>>
MySQL原生密码认证
查看>>
什么是网络割接
查看>>
java web servelt
查看>>
mysql之优化小技巧
查看>>
Mint17 FireFox重装英文版问题
查看>>
linux下C++ 插件(plugin)实现技术
查看>>
GCD基础知识
查看>>
file invalid or corrupt". -vs2010
查看>>