关于《objective-c程序设计》478页 Calculator的初始化方法(即子类初始化方法)
来源:互联网 发布:cname解析 域名后加点 编辑:程序博客网 时间:2024/05/18 22:16
-(id) init
{
self = [super init]
if (self) {
operand1 = [[Fraction alloc] init];
operand2 = [[Fraction alloc] init];
accumulator = [[Fraction alloc] init];
}
return self;
}
首先,为什么要覆写从NSObject继承来的init方法?因为不覆写直接用父类的init方法初始化时,无法初始化Calculator类中的三个实例变量(因为这三个实例变量也是引用类型,同样需要初始化),所以要在一个方法中同时完成Calculator自身及其包含的引用类型的初始化。
关于self = [super init]; 1、为什么要对父类初始化? 2、为什么可以这么赋值?
1、“初始化“实际是对自身包含的数据成员进行初始化,父类的初始化方法必然是可以初始化父类所包含的数据成员,因为子类的数据成员范围大于父类,所以先确保父类被初始化了再初始化子类中的数据成员;
2、因为子类的实例名(指针)可以引用(指向)父类的实例(指针所指向的内容)
都是自己揣测的,欢迎拍砖
对了,还有一点不明,为啥返回的是id类型呢?为啥不是 Calculator * 呢?
- 关于《objective-c程序设计》478页 Calculator的初始化方法(即子类初始化方法)
- 【Objective-C编程开发】关于子类重写父类初始化方法的争论
- Objective-C的Initialize初始化方法研究
- Objective-C的Initialize初始化方法研究
- Objective-C的Initialize初始化方法研究
- Objective-C的Initialize初始化方法研究
- Objective-C的Initialize初始化方法研究
- Objective-C的Initialize初始化方法研究
- Objective-C的Initialize初始化方法研究
- Objective-C的Initialize初始化方法研究
- Objective-C的Initialize初始化方法
- Objective-C( 继承,初始化方法)
- 浅学Objective-C 初始化方法
- Objective-c 构造方法(初始化方法)
- Objective-C 中便利初始化方法和指定初始化方法
- objective-C编程 初始化方法摘要
- Objective-C NSString 创建初始化的几种方法
- Objective-C中初始化方法的实现与作用
- 深度解析:清理烂代码
- 《软件工程的事实与谬论》 之五十五大事实
- Oracle学习(11)---使用rman备份进行数据库的恢复
- 《软件工程的事实与谬论》 之十大谬误
- 零碎知识点
- 关于《objective-c程序设计》478页 Calculator的初始化方法(即子类初始化方法)
- 建立arm-linux交叉工具链 crosstool-ng
- 安装yum (This system is not registered with RHN.)解决方法
- H.264嵌入式视频监控系统项目指导
- 嵌入式WEB视频监控小车项目指导
- python生成大文件 100G瞬间生成 三种方法
- Obj-C code
- A/D | D/A 转换原理计算
- Oracle对Sql语句的软解析和硬解析?