黑马程序员技术交流社区

标题: 关于init [打印本页]

作者: 云霄之上    时间: 2014-7-18 20:14
标题: 关于init
重写init时为什么一定要先把父类初始化一下
作者: fantacyleo    时间: 2014-7-18 20:19
必须的啊。子类继承了父类定义的成员变量。谁对这些成员变量的初始化最清楚?显然是父类
作者: YKS    时间: 2014-7-18 20:35
不alloc,怎么init
作者: 小海    时间: 2014-7-18 20:45
一楼的说的对,初始化父类一般就是为了得到父类中成员变量和方法,因为我们可能只是部分初始化
作者: 大龄产妇    时间: 2014-7-18 21:35
这个问题要从 alloc 和 init 的作用说起。
alloc是申请内存空间  init 则是创建对象。
也就是init后就有个实体化的对象了,这也是类方法与对象方法的区别。
至于为什么要初始化父类,是要一个父类的实体而不是虚拟的类。
有了实体后,在这基础上进行重构,也就是重写。
个人理解,有不对的地方请指出。
作者: 阳光地带    时间: 2014-7-18 22:04
并不是初始化父类。子类继承了父类的初始化方法,使用父类的初始化方法初始化父类的那部分数据,然后再初始化子类中的数据。
作者: istream    时间: 2014-7-19 15:00
如果学过C++这个问题就太容易理解了。简单的讲,子类通过继承来的数据成员需要进行初始化,所以需要调用父类的init函数对继承来的数据成员进行初始化,然后再对自己类中定义的数据成员初始化。

作者: 秋天的悲伤    时间: 2014-7-19 19:56
你在写init方法时,只是对当前类作了一些初始化操作,对于父类的一些成员变量的初始化操作并没有实现,所以要先初始化父类的一些信息。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2