19-黑马程序员------OC 语言学习笔记---继承

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

继承是面向对象的三大特征之一,也是实现软件复用的重要手段。OC的继承具有单继承的特点,每个子类只有一个直接父类。
继承的好处:
1> 抽取重复代码
2> 建立了类之间的关系
3> 子类可以拥有父类中的所有成员变量和方法

#import <Foundation/Foundation.h>

/********************Animal******************/

@interface Animal : NSObject

{
    int _age;
    double _weight;
}
-(void)setAge:(int)age;
-(int)age;

-(void)setWeight:(double)weight;
-(double)weight;

@end

@implementation Animal

-(void)setAge:(int)age
{
    _age = age;
}

-(int)age
{
    return _age;
}

-(void)setWeight:(double)weight
{
    _weight = weight;
}

-(double)weight
{
    return _weight;
}
@end

/***********************Dog*********************/

@interface Dog : Animal

@end

@implementation Dog

@end

/**********************Cat*******************/

@interface Cat : Animal

@end

@implementation Cat

@end

/****************************************/

int main()
{
    Dog *d = [Dog new];
    
    [d setAge:6];
    
    NSLog(@"age=%d",[d age]);
    
    return 0;
    
    
    
    
    
    
    
    
    
}

 2.1    重写父类方法
子类重新实现父类中的某个方法,覆盖父类中的方法叫做重写。子类重写父类的方法需要注意以下几点
1> 父类必须声明在子类的前面
2> 子类不能拥有和父类相同的成员变量
3> 调用某个方法时,优先去当前类中找,如果找不到,去父类中找

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    int _age;
}

-(void)setAge:(int)age;
-(int)age;

-(void)run;
+(void)test;

@end

@implementation Person

-(void)setAge:(int)age
{
    _age = age;
}

-(int)age
{
    return _age;
}

-(void)run
{
    NSLog(@"personn----跑");
}

+(void)test
{
    NSLog(@"调用了test");
}

@end

@interface Student : Person
{
    int _no;
}

-(void)run;

+(void)test2;

@end

@implementation Student

-(void)run
{
    NSLog(@"student----跑");
}


+(void)test2
{
    [self test];
}

@end

int main()
{
    [Student test2];
    
    Student *stu = [Student new];
    
    [stu run];
    
    
    
    return 0;
    
    
    
}

  

1.继承的使用场合

 1> 当两个类拥有相同属性和方法的时候,就可以将相同的东西抽取到一个父类中

 2> A类完全拥有B类中的部分属性和方法时,可以考虑让B类继承A

#import <Foundation/Foundation.h>

@interface Score : NSObject
{
int _cscore;

int _ocscore;
}

@end

@implementation Score

@end

@interface Student : NSObject
{
    Score *_score; // 学生有个成绩类
    int _age;
}


@end

@implementation Student

@end

  

转载于:https://www.cnblogs.com/iceshan/p/4492861.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值