OC的三大特性

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方法了。同样,我们也是可以使用父类中的属性。


转载于:https://my.oschina.net/u/2483168/blog/515372

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值