黑马程序员--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
-------
● 封装
封装就是定义类 定义属性 定义方法
属性封装了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
相关文章推荐
- 黑马程序员——OC面向对象三大特性——封装,继承,多态。
- 黑马程序员_OC学习之封装、继承、多态、组合
- 黑马程序员---OC面向对象三大特性(封装、继承、多态)
- 黑马程序员-OC的三大特性:封装、继承、多态
- 黑马程序员_OC学习之封装,继承,多态
- 黑马程序员_OC_封装,继承,多态
- 黑马程序员——OC基础学习(四)---封装,继承和多态的学习知识总结
- 黑马程序员--OC--封装、继承、多态
- 黑马程序员--OC面向对象的三大特征——封装、继承、多态
- 黑马程序员_iOS开发之OC之面向对象之三大特性封装、继承和多态
- 黑马程序员--OC的三大特性 封装 继承 多态
- 黑马程序员——OC学习——封装、继承、多态
- 黑马程序员——OC学习小结------封装,继承,多态
- 黑马程序员-OC之面向对象的三大特性:封装、继承和多态
- 黑马程序员——OC语言学习——OC面向对象的三大特性:封装、继承、多态,OC字符串——NSString
- 黑马程序员_OC_封装.继承.多态
- 黑马程序员——OC的三大特性:封装,继承,多态
- 黑马程序员--OC之类的封装继承多态使用技巧
- 黑马程序员——OC基础02—封装、继承、多态
- 黑马程序员---OC基础---封装、继承、多态、@property、id类型、实例变量修饰符