- 继承的目的:儿子类想拥有父亲类中的所有的成员,但是不想自己定义,想凭空拥有
- 语法
@interface 类名 : 父亲类的名称
@end
- 效果
- 继承是类在继承,而不是对象在继承,对象与对象毫无关系
- 如果有一个成员不是所有子类都拥有,那么就不应该定义在父类之中,父类应该定义所有子类拥有的。
- 特点
- 单根性
- 传递性:a类继承b,b继承c,c同时拥有a类和c类的成员
- NSObject类:有一个new类方法,类要能创建对象,必须使用这个父类
- 子类与父类同名问题
- 子类不能存在和父类同名的属性
- super关键字:
-
- 可以用在类方法和对象方法之中
-
- 在对象方法中可以使用super关键字调用当前对象从父类继承裹来的方法
-
- 在类方法中 super 关键字可以调用当前类从父类继承过来的类方法
-
- 类方法也能被子类继承,父类中的类方法可以使用父类名来调用,也可以使用子类名来调用
-
- 在子类的方法中,可以使用super关键字调用父类的类方法
-
- super只能用来调用父类的对象方法或者类方法,不能访问属性
8.子类从父类继承
- 相当于子类模版中拥有了父类模版中的所有的成员
- 创建一个子类对象,仍然是根据子类模版来创建对象,字不够子类模版中拥有父类模版中的成员。所以,子类对象中即有子类的成员也有父类的成员
- super特指这个方法是从父类继承过来的
继承的本质
- 创建一个对象,这个对象在内存中是如何分配的
- 子类对象中有自己的属性和所用父类的属性
- 代码段中的每一个类都有一个叫做isa的指针,这个指针指向他的父类,一直指到NSObject.