OC 继承
来源:互联网 发布:禁止软件联网 编辑:程序博客网 时间:2024/05/16 04:45
//// main.m// oc03_继承//// Created by Vision on 14-9-15.// Copyright (c) 2014年 Vision. All rights reserved.//#import <Foundation/Foundation.h>#import "Person.h"#import "Student.h"#import "Teacher.h"#import "CollegeStudent.h"int main(int argc, const char * argv[]){ @autoreleasepool { Student *changKuan = [[Student alloc]initWithName:@"常宽" sex:@"男" age:22]; [changKuan sayHi]; NSLog(@"%@",[changKuan class]); Teacher *bobo = [Teacher alloc]; NSLog(@"%@",[bobo class]); CollegeStudent *wangYiKai = [[CollegeStudent alloc]initWithName:@"王医生" sex:@"男" age:22]; [wangYiKai sayHi]; Person *fengXiao = [[Person alloc]initWithName:@"冯晓" sex:nil age:0]; //(void *) NULL //(id) nil //(class) Nil Person *lizhi = [[Person alloc]initWithName:@"离职"]; CollegeStudent *wuDongSheng = [[CollegeStudent alloc]initWithName:@"吴东升" sex:@"男" age:22 School:@"lanou3g" number:222222 major:@"mahor" academy:@"jishuaji"]; Person *xueWeiChao = [Person personWithName:@"薛维超"]; }return 0;}
<pre name="code" class="objc">//// Person.h// oc03_继承//// Created by Vision on 14-9-15.// Copyright (c) 2014年 Vision. All rights reserved.//#import <Foundation/Foundation.h>@interface Person : NSObject{ NSString *_name; NSString *_sex; int _age;}- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age;- (id)initWithName:(NSString *)name;///便利构造器+ (id)personWithName:(NSString *)name;- (void)setname:(NSString *)name;- (void)setsex:(NSString *)sex;- (void)setage:(int)age;- (NSString*)name;- (NSString*)sex;- (int)age;- (void)sayHi;@end
//// Person.m// oc03_继承//// Created by Vision on 14-9-15.// Copyright (c) 2014年 Vision. All rights reserved.//#import "Person.h"@implementation Person/// 指派、指定初始化方法- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age{ NSLog(@"Person类初始化方法开始"); self = [super init]; if (self) { _name = name; _sex = sex; _age = age; } NSLog(@"Person类初始化方法结束"); return self;}- (id)initWithName:(NSString *)name{ return [self initWithName:name sex:nil age:0];}+ (id)personWithName:(NSString *)name{ Person *p = [[Person alloc]initWithName:name]; return p;}- (void)setname:(NSString*)name{ _name = name;}- (void)setsex:(NSString*)sex{ _sex = sex;}- (void)setage:(int)age{ _age = age;}- (NSString*)name{ return _name;}- (NSString*)sex{ return _sex;}- (int)age{ return _age; }- (void)sayHi{ NSLog(@"我是人类"); NSLog(@"姓名:%@ 性别:%@ 年龄:%d ", _name, _sex, _age);}@end
//// Student.h// oc03_继承//// Created by Vision on 14-9-15.// Copyright (c) 2014年 Vision. All rights reserved.//#import "Person.h"@interface Student : Person{ NSString *_school; int _number;}- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age School:(NSString *)school number:(int)number;- (void)setSchool:(NSString *)school;- (void)setNumber:(int)number;- (NSString*)school;- (int)number;@end
//// Student.m// oc03_继承//// Created by Vision on 14-9-15.// Copyright (c) 2014年 Vision. All rights reserved.//#import "Student.h"@implementation Student///重写父类sayHi方法- (void)sayHi{ NSLog(@"我是一名学生,我叫%@,性别%@,年龄%d", _name, _sex, _age);}- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age School:(NSString *)school number:(int)number{ NSLog(@"Student类初始化方法开始"); //1.调用父类的初始化方法 self = [super initWithName:name sex:sex age:age]; //2.对特有的成员变量一一赋值 if (self) { _school = school; _number = number; } //3.返回self NSLog(@"Student类初始化方法结束"); return self;}- (void)setSchool:(NSString *)school{ _school = school;}- (void)setNumber:(int)number{ _number = number;}- (NSString*)school{ return _school;}- (int)number{ return _number;}@end
//// CollegeStudent.h// oc03_继承//// Created by Vision on 14-9-15.// Copyright (c) 2014年 Vision. All rights reserved.//#import "Student.h"@interface CollegeStudent : Student{ NSString *_major; NSString *_academy;}- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age School:(NSString *)school number:(int)number major:(NSString*)major academy:(NSString*)academy;- (void)sayHi;@end
//// CollegeStudent.m// oc03_继承//// Created by Vision on 14-9-15.// Copyright (c) 2014年 Vision. All rights reserved.//#import "CollegeStudent.h"@implementation CollegeStudent- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(int)age School:(NSString *)school number:(int)number major:(NSString*)major academy:(NSString*)academy{ NSLog(@"CollegeStudent类初始化方法开始"); self = [super initWithName:name sex:sex age:age School:school number:number]; if (self) { _major = major; _academy = academy; } NSLog(@"CollegeStudent类初始化方法结束"); return self;}- (void)sayHi{ [super sayHi];//执行从父类继承下来的方法// NSLog(@"大家好,我是一名大学生,我叫:%@,性别:%@,年龄:%d,在%@学校%@学院读书,学号是%d,就读%@专业",// _name, _sex, _age, _school, _academy, _number, _major);}@end
0 0
- OC 继承
- OC-继承
- OC继承
- OC 继承
- OC 继承
- oc 继承
- OC 继承
- OC:继承
- oc继承
- OC 继承
- OC 继承
- OC-011.OC中的继承
- OC——继承
- OC的继承 初始化
- OC之类的继承
- oc 多继承
- OC--封装,继承,多态
- 继承错误(OC)
- Linux常用命令总结(二)--系统命令
- 栈的基本操作
- Oracle锁表与解锁
- Codeforces Round #265 (Div. 2)
- svn文件冲突,树冲突详解
- OC 继承
- 快播5.0永不升级版 孤雨定制骨头版
- 通过Web远程浏览并控制6410上的摄像头
- junit4测试
- 调整linux系统时间和时区与Internet时间同步
- casperjs小结
- spring-IOC
- 进程和线程的区别
- zoj 3171 - The Hidden 7's