OC 继承

作者: CaptainRoy | 来源:发表于2018-06-17 11:51 被阅读6次
  • 新建一个 Student 类继承于 Person 类
#import "Person.h"

extern NSString * const Education;

@interface Student : Person

@property(nonatomic,copy)NSString *homeTown; // 家乡
@property(nonatomic,assign)NSUInteger classNum; // 班级
@property(nonatomic,copy)NSString *country; // 国籍

// 设置家乡 班级 国籍
-(void)setHomeTown:(NSString *)homeTown andClassNum:(NSUInteger)classNum andCountry:(NSString *)country;

// 打印学生信息
-(void)introduce;

// 打印教育经历
-(void)printEduation:(NSString *)edcation;

// 打印职业规划
-(void)printOccuptionPlan:(EmployeeType)employeeType;

@end
#import "Student.h"

NSString * const Education = @"本科";

@implementation Student

-(void)setHomeTown:(NSString *)homeTown andClassNum:(NSUInteger)classNum andCountry:(NSString *)country
{
    _homeTown = [homeTown copy];
    _classNum = classNum;
    _country = [country copy];
}

-(void)introduce
{
    NSLog(@"姓名: %@, 性别: %@, 年龄: %lu, 班级: %lu, 家乡: %@, 国籍: %@",
          self.name,self.sex,(unsigned long)self.age,(unsigned long)self.classNum,self.homeTown,self.country);
}

-(void)printEduation:(NSString *)edcation
{
    if (!edcation) {
        NSLog(@"%@ 的学历是: %@",self.name,Education);
    } else {
        NSLog(@"%@ 的学历是: %@",self.name,edcation);
    }
}

-(void)printOccuptionPlan:(EmployeeType)employeeType
{
    switch (employeeType) {
        case EmployeeTypeEngineer:
            NSLog(@"%@ 想成为 工程师",self.name);
            break;
        case EmployeeTypeDesigner:
            NSLog(@"%@ 想成为 设计师",self.name);
            break;
        case EmployeeTypeFinance:
            NSLog(@"%@ 想成为 财务",self.name);
            break;
        default:
            NSLog(@"%@ 还不清楚",self.name);
            break;
    }
}


@end
Student *lily = [[Student alloc] init]; // -[Person init]
lily.name = @"lily";
lily.age = 28;
lily.sex = @"女";
[lily setHomeTown:@"湖北" andClassNum:2 andCountry:Nationality];
[lily introduce]; // 姓名: lily, 性别: 女, 年龄: 28, 班级: 2, 家乡: 湖北, 国籍: 中国
[lily printEduation:NULL]; // lily 的学历是: 本科
[lily printOccuptionPlan:EmployeeTypeFinance]; // lily 想成为 财务

相关文章

  • oc 继承 swift 类

    oc 继承 swift 类 项目中使用 oc 继承 swift 类编译器报错: oc 继承前增加 objc_sub...

  • OC Swift文件混编

    一.Swift 类可以继承 OC 类,OC 类不能继承 Swift 类。 二.Swift 和 OC 混编 三.两个...

  • OC 继承

    新建一个 Student 类继承于 Person 类

  • 1.6 继承

    本小节知识点: 继承基本概念 OC中的继承关系 OC中如何实现继承 1.继承基本概念 现实生活中的继承 交通工具类...

  • IOS面试相关

    OC有多继承吗?没有的话用什么代替? OC中没有多继承,可以用委托代理Protocol来实现。 如果有多继承 “:...

  • 类别和延展

    类别和延展 OC中有多继承么,如果没有,用什么代替? OC不支持多继承,如果想要实现多继承的话,可以通过类别和协议...

  • iOS面试120个基础知识点及面试题

    1.OC的类可以多重继承吗?可以实现多个接口吗?要想实现类似多重继承如何实现?答:OC不可以实现多重继承。可以实现...

  • 面试题

    --- #####更多 * 9.OC有多继承吗?没有的话用什么代替? OC中没有多继承,可以用委托代理Protoc...

  • OC实现多继承的方法

    不同于C++拥有强大的多继承特性,OC 只支持单继承,但是OC真的就放弃了如此强大的多继承特性了么?答案是否定的。...

  • 面试问题总结

    第一部分:OC基础 1.oc有多重继承吗?没有的话用什么代替 cocoa中所有的类都继承自NSObject,多继承...

网友评论

      本文标题:OC 继承

      本文链接:https://www.haomeiwen.com/subject/ovcweftx.html