继承是面向对象编程的一个重要原理,通过这个概念,将学会如何使用现有的类定义并使其适合自己的应用程序。
oc中,没有多继承,只允许单继承。一个类可以继承另外一个类,被继承的类称为父类或超类,继承的类称为子类。父类自身也可以有父类,没有父类的类位于层次结构的最顶层,称为根类,oc中的根类是NSObject。只有定义一个新的子类,该类都会继承父类中除了@private实例变量之外的全部内容。
@interface Student :NSObject
{
NSString *_name;
NSString *_sex;
NSInteger _age;
}
@end
#import"Student.h"
@interface CollegeStudent : Student
{
NSString *_major;
}
@end
学生类继承根类NSObject,大学生类继承学术类,大学生类除了定义了自身的特征和行为,还继承了学生类的特征和行为。
子类能直接继承父类的方法,还可以重写父类的方法(子类自己实现),子类重写父类方法后,调用过程会执行子类的方法。继承也具有传递性。
使用继承有以下几点需要注意的:
(1)编译器从上往下执行,所以在子类前面至少应该要有父类的声明;
(2)OC中不允许子类和父类拥有相同名称的成员变量名;
(3)OC中的子类可以拥有和父类相同名称的方法,在子类调用时,优先去自己的内部寻找,如果没有则一层一层的往上找;
super关键字的作用有以下几点:
(1)直接调用父类中的某一个方法
(2)Super处在对象方法中,那么就会调用父类的对象方法;super处于类方法中,那么就会调用父类的类方法。
只是小白对oc中继承的理解与注意,
希望大神能多多帮助。