Objective-C 继承与类
创建: 2018/01/20
完成: 2018/01/21
更新: 2018/01/22 标题前增加 [Objective-C]
继承的概念 | |||||||||||||||||
父类与子类 |
●继承: 继承其他类 ●父类: 被继承的类 子类: 继承的类 ●子类: 可以增加方法与变量,改写已有父类方法 |
||||||||||||||||
继承关系 (Class hierarchy) |
不断继承,树结构一样 最顶端是根类 Cocoa环境下的根类是NSObject, 所有类都要继承它!(直接或间接) |
||||||||||||||||
使用继承的类定义 | |||||||||||||||||
继承关系的声明 |
|
||||||||||||||||
类声明与头文件 | 继承时,头文件必须包含被继承类的头文件 | ||||||||||||||||
继承与方法的呼出 |
当呼出函数(发送信息)时 ●先找当前类定义里有没有 ●再找父类里面有没有定义,没有就再往上找 |
||||||||||||||||
呼出重载前的父类的方法 |
[super 方法名];
|
||||||||||||||||
构造函数 |
|
||||||||||||||||
继承的例子 | |||||||||||||||||
# TODO: Supply [补充例子, 46~49] | |||||||||||||||||
继承与呼出方法 | |||||||||||||||||
self | 自己 | ||||||||||||||||
super |
继承的父类(最靠近的一个) 用super来呼出方法是呼出父类的方法 |
||||||||||||||||
# TODO: Supply [补充例子, 51~52] | |||||||||||||||||
定义方法时的注意 | |||||||||||||||||
内部方法 |
●不在@interface里声明,直接在@implementation里定义 ●外部看不懂相关信息,但是仍旧可以呼出该函数 ●被继承时候主要不要不小心重载了(建议在开头附上前缀) @interface Sample : NSObject { int a; } - (int)test: num; @end @implementation Sample - (int)test: num { ... } - (int)test_2: num { ... } @end
|
||||||||||||||||
指定初始化函数 (Designated initializer) |
●可以单独(包含读取父类的指定初始化函数)完成初始化,不需要呼出本类内其他构造函数的函数 ●NSObject的指定初始化函数式init ●子类创设初始化函数时, 要呼出父类的指定构造函数(也就是主构造函数) |
||||||||||||||||