多态amp;nbsp;OC——第十天
封装:隐藏内部实现,稳定外部接口.
封装就是定义类 定义属性 定义方法属性:封装了setter get方法 Person.h @property(nonatomic,retain)NSString *name,*sex;
类封装了实例变量和方法
#import
@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============================================== Person.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;
}
@end2、继承:子类可以直接复用父类中的成员.子类继承父类所有方法的声明和实现 非私有的实例变量以及协议 继承是要在.h中声明一下 继承具有单根性和传递性 继承就是代码优化公共部分交给父类 #import "Person.h" @interface Worker : Person @end
#import "Person.h" @interface King : Person @end
3、多态:不同对象对同一消息的不同响应.子类可以重写父类的方法
多态就是允许方法重名 参数或返回值可以是父类型传入或返回
#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欢迎学习本文档,未经博主允许,不得私自转载!
总结
以上是生活随笔为你收集整理的多态amp;nbsp;OC——第十天的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Web APi之认证(Authentic
- 下一篇: ViewPager+Fragment基本