OC面向对象—继承(学习来源文顶顶博客等)
2015-02-11 17:03
204 查看
一、基本概念
子类继承父类就拥有了父类所有的方法(行为)和属性(成员变量)。
继承的好处:
(1)、抽取出了重复的代码
(2)、建立了类和类之间的联系
继承的缺点:
耦合性太强
二、oc语言是单继承语言,基本上所有类的根类都是NSobject类;
三、继承的使用注意
(1)编译器从上往下执行,所以在子类前面至少应该要有父类的声明;
(2)oc中不允许子类和父类拥有相同名称的成员变量
(3)oc中的子类可以拥有和父类相同名称的方法,在子类调用时,优先去自己的内部寻找,如果没有则一层一层的往上找
// 提示:重写即子类重新实现了父类的某个方法,覆盖了父类以前的实现
四、继承和组合
继承的适用场合
(1)当两个类拥有相同的属性和方法时,就可以将相同的属性和方法抽取到一个父类中。
(2)当A类完全拥有B类中的部分属性和方法时,可以考虑让B类继承A类(考虑),在这种情况下,也可以考虑使用组合。
组合:可以让某一个类作为另一个类的属性;
五、关键字super
super关键字,在子类中重写方法时,可以让调用者跳过这一层而调用父类中的方法。
作用:
(1)直接调用父类中的某一方法
(2)Super 处在对象方法中,那么就会调用父类的对象方法;super处在类方法中,那么就会调用父类的类方法
使用场景:子类在重写父类方法时,想要保留父类的一些行为。
a. 实例方法是— 类开头是+ 实例方法是用实例对象访问,类方法的对象是类而不是实例,通常创建对象或者工具类。
b. 在实例方法里,根据继承原理发送消息给self和super其实都是发送给self
在类方法里面self是其他的类的类方法,在类方法中给self发送消息只能发类方法self是类super也是
c.什么时候用类方法,要创建一个实例时候获取一个共享实例,或者获取关于类的一些共有信息
子类继承父类就拥有了父类所有的方法(行为)和属性(成员变量)。
继承的好处:
(1)、抽取出了重复的代码
(2)、建立了类和类之间的联系
继承的缺点:
耦合性太强
二、oc语言是单继承语言,基本上所有类的根类都是NSobject类;
三、继承的使用注意
(1)编译器从上往下执行,所以在子类前面至少应该要有父类的声明;
(2)oc中不允许子类和父类拥有相同名称的成员变量
(3)oc中的子类可以拥有和父类相同名称的方法,在子类调用时,优先去自己的内部寻找,如果没有则一层一层的往上找
// 提示:重写即子类重新实现了父类的某个方法,覆盖了父类以前的实现
四、继承和组合
继承的适用场合
(1)当两个类拥有相同的属性和方法时,就可以将相同的属性和方法抽取到一个父类中。
(2)当A类完全拥有B类中的部分属性和方法时,可以考虑让B类继承A类(考虑),在这种情况下,也可以考虑使用组合。
组合:可以让某一个类作为另一个类的属性;
五、关键字super
super关键字,在子类中重写方法时,可以让调用者跳过这一层而调用父类中的方法。
作用:
(1)直接调用父类中的某一方法
(2)Super 处在对象方法中,那么就会调用父类的对象方法;super处在类方法中,那么就会调用父类的类方法
使用场景:子类在重写父类方法时,想要保留父类的一些行为。
a. 实例方法是— 类开头是+ 实例方法是用实例对象访问,类方法的对象是类而不是实例,通常创建对象或者工具类。
b. 在实例方法里,根据继承原理发送消息给self和super其实都是发送给self
在类方法里面self是其他的类的类方法,在类方法中给self发送消息只能发类方法self是类super也是
c.什么时候用类方法,要创建一个实例时候获取一个共享实例,或者获取关于类的一些共有信息
相关文章推荐
- OC 面向对象—多态(文顶顶博客学习笔记及自我认识)
- 黑马程序员——OC语言学习——OC面向对象的三大特性:封装、继承、多态,OC字符串——NSString
- OC学习笔记02-OC中的面向对象语法表现 - 封装 继承与多态
- ios开发-OC面向对象的三个特性-继承和组合的学习
- 【IOS 开发学习总结-OC-16】★★objective-c面向对象之——类的继承
- IOS学习之OC面向对象—继承
- 黑马程序员-------面向对象的封装、继承、多态一些学习笔记
- html5学习笔记---05.JavaScript 中的面向对象,继承和封装
- 黑马程序员学习笔记四——Java 面向对象 特点之 继承
- 学习PHP面向对象(六)继承
- 【Lua学习笔记】 Lua中实现面向对象,转自云风的博客
- 面向对象--继承学习。
- 黑马程序员——java基础学习(面向对象,继承)
- javascript面向对象学习笔记(一)——继承
- Java学习第六课--面向对象的三大特性(封装、继承和多态)
- java学习10-面向对象(继承)
- html5学习笔记---05.JavaScript 中的面向对象,继承和封装
- PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
- javascript面向对象学习笔记(一)——继承