转载请标明出处:【顾林海的博客】

个人开发的微信小程序,目前功能是书籍推荐,后续会完善一些新功能,希望大家多多支持!

##前言

在前面的程序Person.h文件中可以看到,Person继承了NSObject,通过继承可以获取自身定义的实例变量和方法外,还会拥有在NSObject中定义的实例变量和方法。

##实例

#import <Foundation/Foundation.h>@interface Person : NSObject
//定义两个属性
@property (nonatomic) int _age;
@property (nonatomic,readwrite) NSString *_name;- (void) printPersonInfo;@end#import "Person.h"
@implementation Person- (void)printPersonInfo{int age=[self _age];if(age<30){NSLog(@"age=%d,name=%@",__age,__name);}else{NSLog(@"error");}
}@end

上面的程序还是上一篇笔记中的程序。接着继续创建继承自Person的Child类:

#import "Person.h"@interface Child : Person@property (nonatomic) int _grade;
-(int)getGrade;@end#import "Child.h"@implementation Child-(int) getGrade{if(self._age>8&&self._age<23){return self._grade;}else{return -1;}}@end#import <Foundation/Foundation.h>
#import "Child.h"int main(int argc, const char * argv[]) {@autoreleasepool {// insert code here...Child *person=[[Child alloc]init];person._name=@"bill";person._age=26;[person printPersonInfo];int grade=[person getGrade];NSLog(@"name=%@,age=%d,grade=%d",person._name,person._age,grade);}return 0;
}

运行程序:
age=26,name=bill
name=bill,age=26,grade=-1

##覆盖方法

#import "Child.h"@implementation Child-(int) getGrade{if(self._age>8&&self._age<23){return self._grade;}else{return 0;}}-(void)printPersonInfo{NSLog(@"grade=%d",self._grade);
}@end

在Child.m中覆盖了父类Person.m中的printPersonInfo方法。

输出结果:
grade=0
name=bill,age=26,grade=0

##Super

覆盖一个方法的时候,子类可以利用父类的实现,而不是整体替换,这时可以用到 Super指令 :

#import "Child.h"@implementation Child-(int) getGrade{if(self._age>8&&self._age<23){return self._grade;}else{return 0;}}-(void)printPersonInfo{[super printPersonInfo];NSLog(@"grade=%d",self._grade);
}@end

输出结果:
age=26,name=bill
grade=0
name=bill,age=26,grade=0

IOS开发笔记17-Object-C中的继承相关推荐

  1. IOS开发笔记16-Object-C中的属性

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/54667858 本文出自:[顾林海的博客] 前言 前一篇笔记记录了自定类 ...

  2. IOS开发笔记13-Object-C中的NSString

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53572258 本文出自:[顾林海的博客] 前言 NSString是Ob ...

  3. IOS开发笔记12-Object-C中的对象与内存

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53556243 本文出自:[顾林海的博客] 前言 Object-C的内存 ...

  4. IOS开发笔记11-Object-C中的传递消息

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53534039 本文出自:[顾林海的博客] 前言 在前一篇例子中传递的是 ...

  5. IOS开发笔记10-Object-C中的对象

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53513004 本文出自:[顾林海的博客] 前言 关于c语言的基础部分已 ...

  6. iOS开发笔记-两种单例模式的写法

    iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h"st ...

  7. IOS开发笔记之推广安装(用网页判断是否安装App)

    IOS开发笔记之推广安装(用网页判断是否安装App) 在做App推广的时候,我们经常会用到网页链接下载,亦或是一张二维码,最常见的做法就是将App在iTunes中的下载链接嵌入,当用户扫描或者点击网页 ...

  8. IOS开发笔记之常用的第三方库(太多了。)

    图像: 1.图片浏览控件MWPhotoBrowser  实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...

  9. iOS开发笔记(IOS7回归)

    <---点击左上角目录,可以快速查找这里是否有你遇到的问题条目<--- 1,iOS中如何设置项目/文件是否支持ARC 旧工程配置arc方案: 1,直接在targets->build ...

最新文章

  1. 松本行弘:我的编程人生
  2. 安装 Homebrew
  3. python pypdf2另存为图片_最全总结!聊聊 Python 操作PDF的几种方法
  4. Java 洛谷 P1151 子数整数
  5. 一次OutOfMemoryError: GC overhead limit exceeded
  6. oracle package lock,Oracle 11g下重现library cache lock等待事件
  7. 安卓初学者必看实例,(手机GPS简单编程访问)
  8. SAP ABAP OData gateway缓存表的存储逻辑 - cache table logic
  9. LeetCode--88.合并两个有序数组(插入法,排序法)
  10. B/S----验证方式及练习
  11. Oracle10g 如何给scott用户解锁
  12. 数据库的内连接、左连接和右连接
  13. 生信技能树——GEO芯片数据的合并
  14. python自动排版公众号_GitHub - Pidbid/maxpress: MaxPress:MarkDown+Python实现微信公众号一键排版...
  15. 复域,频域,时域之间关系,转换,s平面(转)
  16. 什么是带内管理 带外管理?
  17. 影响力(罗伯特·西奥迪尼)读书笔记思维导图
  18. 刚换了Mac本这些快捷键你知道吗?
  19. 大聪明教你学Java设计模式 | 第十三篇:观察者模式
  20. DHU 数据科学技术与应用【8】 第1-4次单元测验 答案

热门文章

  1. win7发现不了无线网络_win10系统间设置共享文件夹后“网络”选项下仍然无任何文件(即发现不了共享电脑)...
  2. N35-第九周作业-张同学
  3. netty中的future和promise源码分析(二)
  4. 浪潮成立人工智能部门 为AI提供顶尖计算产品
  5. 第十八章 33用重载输出运算符函数实现字符串的输出
  6. [笔记].关于Nios II的数据类型的一点想法
  7. 用AjaxPro实现无刷新翻页效果及数据库分页技术介绍
  8. 类的内置方法__attr__介绍
  9. [T-ARA][HUE]
  10. 快速书写常见的 Kotlin 代码 MD