文档章节

OC的三大特性

 蒲公英6_6守候
发布于 2015/10/10 18:22
字数 703
阅读 11
收藏 0

OC的三大特性分别为:封装,继承,多态。

简单说一下三大特性吧。

封装:

封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限的控制功能,Java中有四种访问权限修饰符:

     @public    @package     @protected   @private  

访问权限依次递减,这样我们在定义类的时候,哪些字段和方法不想暴露出去,哪些字段和方法可以暴露,可以通过修饰符来完成,这就是封装。

继承:

        继承是类中的一个重要的特性,他的出现使得我们没必要别写重复的代码,可重用性很高。

多态:

        多态对于面向对象思想来说,个人感觉是真的很重要,他对以后的编写代码的优雅方式也是起到很重要的作用,其实现在很多设计模式中大部分都是用到了多态的特性,其实多态说白了就是:定义类型和实际类型,一般是基于接口的形式实现的。

继承

#import   
  
@interface Car : NSObject{  
    NSString *_brand;  
    NSString *_color;  
}  
  
- (void)setBrand:(NSString *)brand;  
- (void)setColor:(NSString *)color;  
- (void)brake;  
- (void)quicken;  
  
@end

在Car类中定义了两个属性,以及一些方法

Car.m

//  
//  Car.m  
//  汽车!  
//  
//  Created by 蒲公英&微笑 on 2015/10/10.  
//  Copyright © 2015年 呵呵. All rights reserved.
//  
  
#import "Car.h"  
  
@implementation Car  
- (void)setBrand:(NSString *)brand{  
    _brand = brand;  
}  
- (void)setColor:(NSString *)color{  
    _color = color;  
}  
- (void)brake{  
    NSLog(@"刹车");  
}  
- (void)quicken{  
    NSLog(@"加速");  
}  
@end

方法的实现

在来看一下子类:

Taxi.h

//  
//  Taxi.h  
//  汽车!  
//  
//  Created by 蒲公英&微笑 on 2015/10/10.  
//  Copyright © 2015年 呵呵. All rights reserved.
//  
  
#import "Car.h"  
  
@interface Taxi : Car{  
    NSString *_company;//所属公司  
}  
  
//打印发票  
- (void)printTick;  
  
@end

看到Taxi类继承了父类Car,这里需要导入父类的头文件,然后在Taxi类中多了一个属性和方法

Taxi.m

//  
//  Taxi.m  
//  汽车!  
//  
//  Created by 蒲公英&微笑 on 2015/10/10.  
//  Copyright © 2015年 呵呵. All rights reserved.
//   
  
#import "Taxi.h"  
  
@implementation Taxi  
  
- (void)printTick{  
    [super brake];  
    [self brake];  
    NSLog(@"%@出租车打印了发票,公司为:%@,颜色为:%@",_brand,_company,_color);  
}  
  
@end

对方法的实现,这里我们看到实现文件中是不需要导入父类Car的头文件的,因为可以认为,Taxi.h头文件中已经包含了Car的头文件了。而且,这里可以使用super关键字来调用父类的方法,同时这里我们也是可以用self关键字来调用,这里看到其实这两种方式调用的效果是一样的,当我们在子类重新实现brake方法的时候,那么这时候super关键字调用的还是父类的方法,而self调用的就是重写之后的brake方法了。同样,我们也是可以使用父类中的属性。


© 著作权归作者所有

共有 人打赏支持
下一篇: 代理模式
粉丝 0
博文 15
码字总数 7681
作品 0
西安
私信 提问
「Objective-C基础」三大特性:封装、继承、多态

我们都知道,面向对象程序设计中的类有三大特性:继承,封装,多态,这三大特性是学习类的时候,必须理解的问题,既是基础,更该给予重视。 一、封装(Encapsulation) 封装就是对类中的一些...

无忌不悔
2017/08/08
0
0
OC 继承和类方法

首先来介绍下类方法 我们在之前声明类的方法时是这样的 之后我们要先生成一个对象,然后才能调用到这个方法 但是类方法不同,首先类方法的开头不是减号,而是加号。 其次类方法不用生成对象,...

JoshSone
2016/08/31
1
0
OC面向对象的三大特性:封装,继承,多态

以下,将以三个类做为描述这三个特性的事例,人(父类),动物(父类),狗(子类),因有其它的原因,代码只能晚上抽个时间补上。 假设人有两个属性,姓名(name)与年龄(age),行为:饲养(feed);动...

AppleDream
2016/03/28
34
0
OSC 第 110 期高手问答 —— OC & Swift 运行时特性

OSCHINA 本期高手问答( 1月19日- 1月26日)我们请来了听云移动研发总监 @yeskert 来解答 Swift 和 Objective-C 的运行时特性 方面的问题。 杨凯,@yeskert ,听云移动研发总监,负责 tingyunA...

叶秀兰
2016/01/19
6K
36
AppCode 3.0.3 发布,bug 修复版本

AppCode 3.0.3 发布,此版本是个 bug 修复更新版本: OC-9910 – Incorrect indentation of method’s block arguments; OC-10033 – Merge Tool unable to merge resolving conflicts; OC-9......

oschina
2014/07/31
1K
5

没有更多内容

加载失败,请刷新页面

加载更多

IOC的学习(1)

1.IOC理论概要 java中,一个对象A怎么才能调用对象B? 当一个对象的构建,需要多个其他对象时,对象和对象有复杂的构建关系。spring帮助我们维系对象的依赖关系,降低系统的实现成本,前提是...

杨健-YJ
20分钟前
1
0
Spring 的 getBean 方法源码解析

文本将从以下几个方面介绍 相关文章 FactoryBean 接口 BeanFactory 接口 BeanFactory 接口 和 FactoryBean 接口的区别 getBean 方法的源码解析 Spring 循环依赖的解决方式 相关文章 Spring 中...

TSMYK
23分钟前
0
0
李鸿章六百多字参倒豪门重臣,晚清第一奏折,藏尽顶级权谋话术!

道光二十七年(1847年),二十四岁的李鸿章高中进士,列二甲第十三名。 在此期间,有桩轶事挺有意思。 会试时,李鸿章的房师为当时的名士孙锵鸣。发榜后,孙锵鸣见自己这一房只考中了李鸿章、...

乔老哥
29分钟前
1
0
PTA-基础编程题目集-7-14 求整数段和

给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 输入格式: 输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。 输出格式: 首先顺序输出从A到B的所有整数,每...

niithub
29分钟前
3
0
Spring Qualifier的使用

摘要 spring 的 qualifier 平常使用一般直接是使用id 来限定,不过spring给我们提供了更强大的功能。 使用方法 直接使用 直接在@Qualifier中限定bean的id 在bean上使用@Qualifier来指定后续使...

52iSilence7
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部