IOS开发笔记17-Object-C中的继承
来源:互联网 发布:priest 锦瑟 知乎 编辑:程序博客网 时间:2024/06/08 09:56
转载请标明出处:【顾林海的博客】
前言
在前面的程序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
阅读全文
0 0
- IOS开发笔记17-Object-C中的继承
- IOS开发笔记10-Object-C中的对象
- IOS开发笔记11-Object-C中的传递消息
- IOS开发笔记13-Object-C中的NSString
- IOS开发笔记16-Object-C中的属性
- IOS开发笔记12-Object-C中的对象与内存
- iOS开发笔记-object-c之 @[], @{}
- iOS Object-c 学习笔记
- 【IOS 开发】Object-C 运算符
- 【学习笔记之ios开发】1.Object-C语法概述
- iOS笔记---- object-c 分类
- Object-C学习笔记三-----继承
- object -c笔记之导入和继承
- iOS开发-object-c之 @[], @{}
- IOS开发-object-c之 @[], @{}
- iOS开发-object-c之 @[], @{}
- iOS开发-object-c之 @[], @{}
- iOS开发笔记--Objective-C实现多继承
- Spring5集成log4j2
- 使用js操作子页面iframe内的元素节点
- C 判断数据类型?
- mybatis 存取Blob数据到oracle数据库
- windows安装mysql出现的2个问题msvcr120.dll与0xc000007b
- IOS开发笔记17-Object-C中的继承
- 多个块级元素的居中
- Android 中处理崩溃异常和记录日志
- 算法与数据结构基础(四)高级排序算法1.归并排序
- maven构建spring web项目报错Java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherSer
- 前端小技巧
- java邮箱激活
- 填报表动态前景色
- iOS之自定义弹窗