您的位置:首页 > 职场人生

黑马程序员--OC--封装、继承、多态

2014-10-23 16:41 190 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
------- 

● 封装
封装就是定义类 定义属性 定义方法
 
属性封装了set、get方法
@property(nonatomic,retain)NSString *name,*sex;
 
类封装了实例变量和方法
#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
 
#import
"Person.h"
@implementation Person
@synthesize name =
_name,sex = _sex,age =
_age;
- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age
{
    self = [superinit];
    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
 
 
●多态
多态:不同对象对同一消息的不同响应.子类可以重写父类的方法
多态就是允许方法重名 参数或返回值可以是父类型传入或返回
#import
"AppDelegate.h"
#import
"Worker.h"
#import
"Actor.h"
#import
"King.h"
 
 
Worker *worker = [[Worker alloc] init];
worker.name =
@"工人";
[worker work];//worker
可以换为父类型Person
King *king = [[King alloc]init];
king.name =
@"国王";
[king work];//king可以换为父类型Person
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息