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
原创粉丝点击