OC-继承,多态,self,super
来源:互联网 发布:windows文件损坏r修复 编辑:程序博客网 时间:2024/06/06 04:43
继承
定义:一个新类可以从现有的类中派生出来,这个过程称为继承。
语法:
注意:
- 继承是面向对象编程的重要语法,OC是单继承;
- 通过继承可以拥有父类的全部方法和属性,比如我们可以把一个可变对象当做不可变对象使用,反之则不行;
- 一般情况下,继承NSObject
类。
继承的特点:
使用继承可以实现代码的复用,减少代码冗余;
Objective-C中一个类可以继承另一个类;
子类可以直接“拥有”父类中所有允许子类继承的成员和方法;
子类可以改变父类中已有的方法,执行同的代码实现。
关键字self
- 在类的方法中替代自身,或者说替代调方法的角色。(实例方法中为调方法的对象,类方法中为类本身)
- 可以直接调用本类或父类的方法。(方法重名时会直接调用本类的方法)
//可以通过如下方式去打印self@interface Person : NSObject- (void)testSelf1;+ (void)testSelf2;@end@implementation Person- (void)testSelf1{ NSLog(@"%@",self);}+ (void)testSelf2{ NSLog(@"%@",self);}@end
关键字super
- 在类的方法中替代父类
- 只能用来调用父类的方法。(类中方法名与父类完全相同时,如果想要调用父类的方法,只能使用super,例如init方法)
@interface Student: Person- (void)sayHello;@end@implementation Student- (void)sayHello{ NSLog(@”大家好”); [super sayHello];}@end
多态
定义(Polymorphism):在面向对象语言中,接口的多种不同的实现方式即为多态。换句话说,不同对象对同一消息的不同响应。
子类可以重写父类的方法,多态就是允许方法重名,参数或返回值可以是父类型传入或返回。
常见问题:
为什么在重写init方法和自定义init方法的时候都要必须要首先调用父类的init方法 ?面向对象继承的概念,一个子类从父类继承,获得相关的属性和方法,所以在子类的初始化方法中,必须首先调用父类的初始化方法,以实现父类相关资源的初始化。也就是任何一个对象初始化完成之后,必须包含所有继承体系的属性和方法super init是完成本类对象的父类特征的初始化所以通过super init来传递这个初始化事件
针对dealloc里面的[super dealloc]你所创建的每个类都是从父类,根类继承来的,有很多实例变量也会继承过来,这部分变量有时候会在你的程序内使用,它们不会自动释放内存,你需要调用父类的 dealloc方法来释放
1 0
- OC-继承,多态,self,super
- oc继承self,super的作用
- OC学习日记-继承,多态,私有属性、变量和方法,self,super,属性修饰符,description
- 黑马程序员--OC自学笔记--04self、super、继承、多态、修饰符
- OC语言的第四天 static、self、super、继承、NSObject类、私有属性和私有方法、多态
- OC中self和super
- OC中self与super
- OC语言self和super
- OC中的self、super理解
- OC中的self和super
- __init__(self),self,super,继承杂谈
- OC第三天-继承,初始化方法,便利构造器 ,self,super,方法重写
- OC_语法入门_day2_封装/继承/多态/self/super
- OC视频笔记2.3(OC继承的使用)2.4(self与super)2.5(方法的重写)
- OC基础day4-继承,self,super,多态,类对象,SEL类型,description,私有方法与私有变量,三种访问限制
- OC--继承 self 的概念
- oc中的 if(self=[super init])
- OC中self和super的使用
- java解惑之try catch finally
- CommonAdapter-万能的ListView.GridView的适配器
- Android移动view动画问题 关于view的位置移动了,但view里面绑定的监听器还在原位
- Android Make脚本简记
- Git分支 - 创建,切换
- OC-继承,多态,self,super
- jar包中初始化Spring环境,报错找不到applicationContext.xml
- Java字符串转换为ASCII
- Kafka协议翻译
- BMFont 自定义字体 数字图片 文字图片 制作成字体
- ppp协议的应用
- 初级用户苹果上遇到的坑
- MySQL 5.7并行复制实现原理与调优
- Servlet源码分析【转】