编写初始化方法时,应该遵循以下原则:
1、创建新类时,如果指定初始化方法的方法名和父类不同,就需要在类的头文件种注释(BNROwnedAppliance是BNRAppliance子类):
2、其他的初始化方法都应该(直接或间接地)调用指定初始化方法。
3、指定初始化方法应该先调用父类的指定初始化方法,然后再对实例变量进行初始化
![]()
4、如果某个类的指定初始化方法和父类不同(方法名不同),就必须覆盖父类的指定初始化方法,并调用新的指定初始化方法:
![]()
5、如果某个类有多个初始化方法,就应该在相应的头文件中明确地注明哪个方法是指定初始化方法:
![]()
其他:
1、禁用init方法:覆盖init方法,在里面raise一个exception
![]()
那么在调用init方法时,程序会中断:
![]()