iOS开发-写给初学者:OC面向对象的三大特征

封装、继承、多态

封装:封装主要的功能是将数据隐藏起来,只有此类别所属的方法,亦即实体方法(instance 
method),才能直接存取数据,所以也可以说是在保护数据,不会被外界任意的存取,所以就大大的降低数据的误用,且很容易的知道错误在哪里,从而省下很多的维护成本。面向对象程序设计中的方法可分为两种,一为上述的实体方法,二为类别方法(class method)。主要的差异在于实体方法需要有一对象去引发,而类别方法可以由类别名称触发之。 

多态:父类指针指向子类对象。两种表现形式:重写(父子类之间)和重载(本类中)

OC的多态体现是:重写,没有重载这种表现形式

举例说明:

@interface Parent : NSObject    //父类
- (void)simpleCall;
@end
@interface Child_A : Parent   //子类 Child_A
 
@end
@implementation Child_A
- (void)simpleCall
{
    NSLog(@"我是Child_A的simpleCall方法");
}
@end
@interface Child_B : Parent     //子类Child_B
 
@end
- (void)simpleCall
{
     NSLog(@"我是Child_的simpleCall方法");
}
@end
然后,我们就可以看到多态所展示的特性了:
Parent * pa=[[Child_Aalloc] init];//父类指针指向子类Child_A对象
Parent * pb=[[Child_Balloc] init];//父类指针指向子类Child_B对象
[pa simpleCall];// 显然是调用Child_A的方法
[pb simpleCall];// 显然是调用Child_B的方法
在OC中常看见的多态体现:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
 {  
     static NSString *CellWithIdentifier = @"Cell";  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellWithIdentifier];  
     return cell;  
  } 
(UITableViewCell *)指向cell子类对象


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值