A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

默认的构造方法new构造的对象里变量都为零,修改变量值,还需要进行一步赋值。重写构造方法的好处在于,在创建对象的时候就对对象的成员变量就行赋值。可以节省代码。视频里一再强调重写构造方法时,要先调用父类的init方法,先对父类的成员变量就行初始化。原因在哪呢。
我认为如果父类成员变量只有非指针变量,那么是否一定先对父类成员变量初始化没什么影响。但是就是因为父类中一定有指针变量,最起码也有isa指针。这个变量如果不先对父类进行初始化的话,那么子类中的isa就没有值就是nil,那么子类就没法通过isa操作父类中的方法。也就是说子类只能继承了父成员变量,但是继承不了父类的方法。
而且如果父类中有类指针的话,子类连父类的指针变量都无法继承,因为只有父类对指针变量就行初始化也必须进行初始化,这样子类才可以对父类拥有的对象进行操作。否则子类连这个指针行的成员变量也无法拥有。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马