OC语言-三大特性之封装继承多态
2015-07-28 08:27
309 查看
一、封装
1.封装:把具体的对象抽象化、把相同类型的对象抽象成一个类。
封装:抽象出具体对象的特征 隐藏内部实现内部变量的安全性,提高代码的复用性、可读性。
2.封装的好处:
1)可以提升代码的复用性(重复使用);
2)提高了代码的安全性;
3)提高的代码的可读性
二、继承
1.继承:子类 拥有父类的全部属性和方法。
1)子类:就是继承的类。
2)父类、超级类:被继承的类。
3)子类独有的 父类不能使用。
4)子类 可以拓展 父类的 方法和属性 同时也可以添加变量。
示例:
1)@interface classA : NSObject
创建一个classA类,它的超类是NSObject(最基础的类)。我们再创建一个classB类,它的超类是classA;
2)@interface classB:classA
classB类将从classA类那里继承所有实例变量和方法。它们继承的方式如示意图。
2.继承的好处:
1)创建大量相似类的时候,可以节省工作量。
2) 使用框架中的类,或已经写好的类,继承该类,生成一个派生类,比原类更好用。
注意:NSString NSArray NSDictionary 不能被继承
3.问题: OC里面有没有多继承?
答:OC里面没有多继承,但是可以多级继承。
三 、多态
1.多态:一个事物的多样性。一个事物 同一个方法表现出 不同的状态。
多态:同一事物的多样性 同一个方法 有不同的实现(相同的名称,不同的类)
1)如果父类 拥有的方法;
2)子类不希望使用那种实现方式 可以重写这个方法。
例:父类中实现的方法
- (void)life{
NSLog(@"%@活着", self.name);
}
子类中实现的方法
- (void)life{
// 调用父类本身的方法 添加自己独特的方法
[super life];
NSLog(@"%@是个人类 活着", self.name);
}
2.子类从父类继承方法,但是有时候,父类的方法,不适合子类,那么子类就可以写一个自己同名的方法,覆盖掉,父类的那个方法,叫做重写。
注意:不能通过继承删除或减少方法。
3.同一个接口,不同的实现。称为多态。重写是多态的一种。
1.封装:把具体的对象抽象化、把相同类型的对象抽象成一个类。
封装:抽象出具体对象的特征 隐藏内部实现内部变量的安全性,提高代码的复用性、可读性。
2.封装的好处:
1)可以提升代码的复用性(重复使用);
2)提高了代码的安全性;
3)提高的代码的可读性
二、继承
1.继承:子类 拥有父类的全部属性和方法。
1)子类:就是继承的类。
2)父类、超级类:被继承的类。
3)子类独有的 父类不能使用。
4)子类 可以拓展 父类的 方法和属性 同时也可以添加变量。
示例:
1)@interface classA : NSObject
创建一个classA类,它的超类是NSObject(最基础的类)。我们再创建一个classB类,它的超类是classA;
2)@interface classB:classA
classB类将从classA类那里继承所有实例变量和方法。它们继承的方式如示意图。
2.继承的好处:
1)创建大量相似类的时候,可以节省工作量。
2) 使用框架中的类,或已经写好的类,继承该类,生成一个派生类,比原类更好用。
注意:NSString NSArray NSDictionary 不能被继承
3.问题: OC里面有没有多继承?
答:OC里面没有多继承,但是可以多级继承。
三 、多态
1.多态:一个事物的多样性。一个事物 同一个方法表现出 不同的状态。
多态:同一事物的多样性 同一个方法 有不同的实现(相同的名称,不同的类)
1)如果父类 拥有的方法;
2)子类不希望使用那种实现方式 可以重写这个方法。
例:父类中实现的方法
- (void)life{
NSLog(@"%@活着", self.name);
}
子类中实现的方法
- (void)life{
// 调用父类本身的方法 添加自己独特的方法
[super life];
NSLog(@"%@是个人类 活着", self.name);
}
2.子类从父类继承方法,但是有时候,父类的方法,不适合子类,那么子类就可以写一个自己同名的方法,覆盖掉,父类的那个方法,叫做重写。
注意:不能通过继承删除或减少方法。
3.同一个接口,不同的实现。称为多态。重写是多态的一种。
相关文章推荐
- [C++] WinAES问题
- OC语言初学心得
- OC语言第四课 Foundation框架一——iOS学习连载九
- OC语言第五课 Foundation框架二——iOS学习连载十
- C++ 优先队列用法自定义Compare函数
- 国嵌语言的艺术之C++项目讲解精讲班
- C语言之三种循环结构与递归函数的对比
- POJ 3259 BellmanFord算法和poj2240几乎一样
- 读书笔记MoreEffectiveC++(19)
- 读书笔记MoreEffectiveC++(18)
- 读书笔记MoreEffectiveC++(17)
- C++对象模型——关于对象(第一章)
- 《C++编程思想》第四章 初始化与清除(原书代码+习题+解答)
- C++中的内存!(转载)堆 栈 全局/static变量区 常量区
- HDU 1171 Big Event in HDU
- c语言之猴子吃桃问题
- POJ 2387 裸的dijkstra
- Ubuntu 12.04 使用Eclipse搭建C/C++编译环境
- 一个C++版的嵌入式操作系统
- C/C++ 位域