面向对象的三大特点

面向对象的三大特点 封装、继承、多态

 

封装:隐藏内部实现,稳定外部接口.

封装就是定义类 定义属性 定义方法

 

属性封装了setter get方法 

@property(nonatomic,retain)NSString *name,*sex;

 

类封装了实例变量和方法

.h文件

 

#import <Foundation/Foundation.h>

 

@interface Person : NSObject

{

    NSString *_name;

    NSString *_sex;

    int _age;

}

@property(nonatomic,retain)NSString *name,*sex;

@property(nonatomic,assign)int age;

 

- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age;

-(Person *)work;

 

@end

 

 

.m文件

 

#import "Person.h"

 

@implementation Person

@synthesize name = _name,sex = _sex,age = _age;

- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age

{

    self = [super init];

    if (self) {

        self.name = name;

        self.sex = sex;

        self.age = age;

    }

    return self;

}

- (Person *)work

{

    NSLog(@"%@正在工作",self.name);

    return 0;

}

 

@end

 

 

继承:子类可以直接复用父类中的成员.子类继承父类所有方法的声明和实现 非私有的实例变量以及协议 继承是要在.h中声明一下 继承具有单根性和传递性

 继承就是代码优化公共部分交给父类

#import "Person.h"

 

@interface Worker : Person//子类:父类

 

@end

 

#import "Person.h"

 

@interface King : Person

 

@end

 

OC中继承:单根性(一个子类只能有一个超类)

                       传递性(A->B->C  A->C)

 

 

 

多态:不同对象对同一消息的不同响应.子类可以重写父类的方法

多态就是允许方法重名 参数或返回值可以是父类型传入或返回

#import "AppDelegate.h"

#import "Worker.h"

#import "Actor.h"

#import "King.h"

 

 

 Worker *worker = [[Worker alloc] init];

  worker.name = @"工人";

  [worker work];

  King *king = [[King alloc]init];

  king.name = @"国王";

  [king work];

 

转载:http://xingboss3.blog.51cto.com/4155513/964953

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值