OC笔记 - 面向对象特性(2015.1.28)
来源:互联网 发布:ubuntu 命令行解压deb 编辑:程序博客网 时间:2024/06/14 10:41
1.self和对象方法
谁调用当前方法,self就代表谁
* self在对象方法中,self代表当前对象
* self在类方法中个,self代表类
> self在对象方法中 可以利用self->属性名称的方式访问成员变量
> [self 方法名称]; 调用其它方法(类方法/对象方法)
2.self注意
在类方法中不能利用self调用和自己同名的类方法,会造成死循环
在对象方法中不能利用self调用和自己同名的对象方法,会造成死循环
3.继承
当A类继承了B类, A类就拥有了B类所有的成员变量和方法
优点:
继承的出现减少了代码量
提高了代码的安全性
让类与类之间产生了关系
让phone和Iphone有了关系 (父子关系),正是因为有了父子关系才有多态的特性
让Iphone和Anycall有了关系(兄弟关系)
坏处:
耦合性太强
注意点:
如果子类实现了和父类一模一样的方法我们称之为重写
子类当中不能定义和父类相同的成员变量
OC只支持但继承不支持多继承
OC中可以有多层继承
子父类中的方法调用顺序:
现在本类中找,如果本类没有再到父类中找,如果父类中没有,就到爷爷类中找
NSObject是99.9%的类的父类
查看父类中的功能, 建立子类对象使用功能
super是明确的告诉程序要执行父类中的方法
super使用场合:子类重写父类方法的时候想保留父类的一些行为的时候
使用super在对象方法中调用父类的方法会调用父类的对象方法
4.escription
当使用%@打印一个对象的时候会去调用对象的description方法
5.多态
什么是多态:多态就是某一类事物的多种形态
猫 == 猫 == 动物
狗 == 狗 == 动物
男人 == 男人 == 人 == 高级动物
女人 == 女人 == 人 == 高级动物
在代码中多态的前提:没有继承就没有多态
狗 *g = [狗 new];
代码体现:用父类类型的指针指向了子类对象,这就是多态
例如 动物 *a = [狗 new];
OC特性:运行方法时会动态检查对象的真实类型, (动态绑定)
Animal *a1 = [Dognew];
[a1 eat];//a1的真实类型是Dog,因此会调用Dog的eat方法而不是Animal的eat方法
多态的好处:多态的存在提高了程序的扩展性
多态的局限性:父类类型的指针不能调用子类对象的特有方法,如果想调用子类特有方法必须强制类型转换为子类类型
注意:不要把父类类型强制转换为子类类型
6.成员变量作用域
当是public的是可以在其它文件中直接访问
当是private的时候,在其它文件中不能直接访问
当是protected的时候,在其它文件中不能直接访问
默认情况下所有属性都是protected的
在子类中该可以访问父类中protected修饰的成员变量
在子类中该可以访问父类中public修饰的成员变量
在子类中该"不可以"访问父类中private修饰的成员变量
- OC笔记 - 面向对象特性(2015.1.28)
- OC面向对象特性
- OC学习笔记三---面向对象三大特性
- oc学习笔记(四)面向对象-类的三大特性:封装,继承,多态
- 学习笔记:OC面向对象(2)
- 面向对象-三大特性(OC代码)
- oc 面向对象特性(属性,构造方法)
- OC面向对象三大特性
- OC面向对象三大特性
- 黑马程序员--学习OC面向对象特性
- 黑马程序员-oc面向对象特性
- OC -面向对象三大特性
- OC面向对象_三大特性
- OC面向对象的三大特性
- 黑马程序员————IOS学习笔记 第3篇 OC面向对象三大特性(1)
- 黑马程序员————IOS学习笔记 第4篇 OC面向对象三大特性(2)
- oc学习笔记(二)面向对象-类和对象
- OC简介,OC特性,面向对象简介,创建一个类
- Unity3d如何更新代码
- 小P的故事——神奇的饭卡(0—1背包,求剩余钱最少)
- NuGet管理dll包--dll包的发布与引用
- 二月五号六号 集训第五第六天 线段树
- 正常显示,鼠标按下,鼠标弹起,按钮显示不同的图
- OC笔记 - 面向对象特性(2015.1.28)
- 关于求最大联通域的OpenCV方法
- Android C++层内存泄漏检测
- UVA 11796 || Dog Distance ( 折线划分线段更新
- A Good Bye 2014(CF)
- Android获取View的高宽
- cc150:判断一棵树是否为平衡树
- Android使用AttributeSet自定义控件的方法
- B. New Year Permutation (CF)