OC-类有三大特性:封装 继承 多态
来源:互联网 发布:学校电铃知乎 编辑:程序博客网 时间:2024/06/05 02:06
01).封装
封装是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。简而言之,信息隐藏,隐藏对象的实现细节,不让用户看到,以此来增强安全性和简化编程,进而达到封装的目的。 使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。
访问修饰符:private、protect、public、Internal
private:私有的,不可供外部访问的信息,只有类本身能存取.系统默认@private
protect:受保护的,类和派生类可以存取.
Internal:只有同一个项目中的类可以存取.
Public:外部可以直接访问 person->name = @“jack”;
//封装 (setter和getter)成对出现 - (void)setName:(NSString *)name;//声明 - (NSString *)name;//声明 - (void)setName:(NSString *)name //实现 { _name = name; } - (NSString *)name//实现 { return _name; } [p setName:18];//赋值 [p name]; //取值 //只有getter没有setter,叫做只读封装
扩展:如何让1个方法不被外界访问,只需要在.m文件中实现这个方法,不需要在头文件中定义,即只有实现,没定义.
02).继承
OC 的继承具有 单继承 的特点,每个子类都只能有一个直接父类。然而,他可以有无限多个间接父类。
当子类继承父类时,子类可以得到父类的:
1.全部成员变量
2.全部方法
03).多态
一种事物的多种形态。不同类的对象可以定义共享相同名称的方法,这个就是多态的表现形式。
实现多态的条件:
1.必须存在继承关系
2.子类重写父类的方法
3.父类声明的变量指向子类对象
OC指针类型的变量有两个:编译时类型和运行时类型。编译时类型由声明变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可能出现多态。
父类:动物类 HMAnimal.h
#import <Foundation/Foundation.h>@interface HMAnimal : NSObject{ //年龄 int _age;}//吃-(void)eat;//跑-(void)run;@end
父类:动物类HMAnimal.m
#import "HMAnimal.h"@implementation HMAnimal//吃-(void)eat{ NSLog(@"动物在吃");}//跑-(void)run{ NSLog(@"动物会跑");}@end
子类:狗狗类 HMDog.h
#import "HMAnimal.h"@interface HMDog : HMAnimal//dog类已经有了父类的属性和行为//狗特有的行为-(void)lookHome;@end
子类:狗狗类 HMDog.m
#import "HMDog.h"@implementation HMDog//重写父类的方法-(void)eat{ NSLog(@"狗正在吃芝麻酱和红糖");}-(void)run{ NSLog(@"狗一边叫,一边跑");}-(void)lookHome{ NSLog(@"狗会看家");}@end
运行 main.m
#import <Foundation/Foundation.h>#import "HMDog.h"int main(int argc, const char * argv[]) { @autoreleasepool { HMAnimal *ani1 = [HMDog new];//父类指针指向子类对象,这就是多态 [ani1 eat]; //运行结果由实际赋给该变量的对象决定 [ani1 run]; } return 0;}
2017-06-20 23:17:15.450844+0800 多态[2295:564455] 狗正在吃芝麻酱和红糖
2017-06-20 23:17:15.451833+0800 多态[2295:564455] 狗一边叫,一边跑
阅读全文
0 0
- OC-类有三大特性:封装 继承 多态
- OC温故:类的三大特性(封装,继承,多态)
- OC温故:类的三大特性(封装,继承,多态)
- 黑马程序员--OC的三大特性 封装 继承 多态
- OC中的类的三大特性:继承,封装,多态
- OC--封装,继承,多态
- OC封装 继承 多态
- OC 封装 继承 多态
- OC语言---封装,继承,多态
- oc学习笔记(四)面向对象-类的三大特性:封装,继承,多态
- 黑马程序员——OC面向对象三大特性——封装,继承,多态。
- 黑马程序员——OC面向对象三大特性——封装,继承,多态。
- 黑马程序员——OC三大特性(继承、多态、封装)
- 黑马程序员---OC面向对象三大特性(封装、继承、多态)
- OC学习篇之---类的三大特性(封装,继承,多态)
- OC学习篇之---类的三大特性(封装,继承,多态)
- OC学习篇之---类的三大特性(封装,继承,多态)
- 黑马程序员——OC三大特性(继承、多态、封装)
- mysql的timeout
- 分布式存储系统设计(2)—— 数据分片
- jdbc连接oracle
- 设计模式(Design Pattern)
- Android五大组件-Broadcast Receiver
- OC-类有三大特性:封装 继承 多态
- python 百度贴吧
- Hadoop-2.4.1学习之如何确定Mapper数量
- Win10下安装tensorflow (Python3.5)
- 从0开始学git 第5节:开始我们的第一个GIT PROJECT
- 导入Maven遇到的错误
- java---数组复制
- 导数,偏导,方向倒数,梯度
- 多线程