1.基本概念
继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
2.特点
通过“父类”语法来实现,实现继承的类被称为子类,被继承的类被称为父类,也称其为基类、超类。父类和子类的关系是一种“一般和特殊”的关系。例如,水果和苹果的关系,苹果继承了水果,苹果是水果的子类,苹果是一种特殊的水果。
子类可继承父类的全部成员变量、全部方法(包括初始化方法)。
3.在学习中笔记的记录
1. 如果要让成员变量可以被继承,需要手动生成(对应的就是@property方法声明后不需要写生成,但是涉及到继承就需要手动继承)
2. 子类可以有一些独有的方法(就并不是只能进行继承)
3. 当子类与父类有同名(相同返回值、方法名、参数列表)的方法时,优先执行子类中同名的方法,将这个过程称之为重写,建立在第二点基础上。
4. 重写方法执行的原理:首先在本类中寻找这个方法,找到了就执行,没有找到再去直接父类中查找,找到了就执行,没有找到再去上一级父类中寻找,直到找到NSObject类为止,找到了就执行,没有找到就说明没有这个方法。
5. 重写的目的是为了在与父类同名方法中完成一些属于自己的功能。
6. super关键字 如果需要在子类方法中调用父类被覆盖的方法,则可以使用super关键字来调用父类被覆盖的方法。
7. super:通俗易懂来讲 代表的是父类对象指针或者是父类类名 ,在子类中调用父类中方法时候进行使用。
举个例子,什么是子类中调用父类
//在.m文件中进行方法实现是,如果父类为NSLog(@"456");,然后子类使用super类进行引用
-(void)run{
[super run];//并不会直接进行使用,还需要在main函数再调用这个方法。
NSLog(@"123");
}
//输出结果为456 123