Objective-C的继承与复合
来源:互联网 发布:淘宝网衣服男装上衣 编辑:程序博客网 时间:2024/04/28 08:33
从毕业开始一直都在做Android开发,近期开始学习Objective-C,接下来的几篇文章会具体介绍一些Objective-C的基础知识,也算是检验一下自己学习的成果。
对比代码效果更好一些,我将代码放在了github上:
https://github.com/mymdeep/OC_foundation
继承
继承的语法格式
@interface xxxx:NSObject
冒号后面的标识符是需要继承的类,需要注意的是OC不支持多继承,这点跟Android是一样的,需要的话可以通过类别或者协议来实现(后面会介绍),就好像Android的接口。
示例代码:
@interface Person : NSObject{ NSString *name; NSString *sex; NSString *age; Hand *hands[2]; Foot *foots[2];}-(void)setName:(NSString*) name;-(void)setSex:(NSString*) sex;-(void)setAge:(NSString*) age;-(void)print;-(void)desc;@end
@implementation Person-(void)setName:(NSString*) n{ name = n;}-(void)setSex:(NSString*) s{ sex = s;}-(void)setAge:(NSString*) a{ age = a;}-(void)print{ NSLog(@"name:%@,sex:%@,age:%@",name,sex,age);}-(id)init{ hands[0] = [Hand new]; hands[1] = [Hand new]; foots[0] = [Foot new]; foots[1] = [Foot new]; return self;}-(void)desc{ [hands[0] desc]; [foots[0] desc];}@end
这是我定义的一个Person类,如果此时我需要一个Student类,构造与Person一样,唯一不同的print方法不一样,我们可以像如下一样实现:
@interface Student : Person@end
@implementation Student-(void)print{ NSLog(@"学生:name:%@,sex:%@,age:%@",name,sex,age);}@end
super
当在子类想实现父类的方法时,可以使用super关键字:
-(void)print{ [super print]; NSLog(@"学生:name:%@,sex:%@,age:%@",name,sex,age);}
复合
在objective-c中,复合是通过包含作为实例变量的对象指针实现的。例如上面代码中的Person类,包含一个Hand类的实例变量,一个Doot类的实例变量。
更多的开发知识,可以关注我的公众号:
0 0
- Objective-C的继承与复合
- 【Objective-C编程】浅析Objective-C的继承与复合
- Objective-C中的继承与复合技术
- [转载]Objective-C中的继承与复合技术
- 黑马程序员:Objective-C中的继承与复合
- Objective-C 类的复合
- Objective-C的继承与组合
- Objective-C基础教程2(继承和复合)
- Objective-C基础教程2(继承和复合)
- objective-c 复合
- Objective-C 2.0 笔记 (3) Objective-C 物件导向程式设计,类目、协定、继承及复合
- 深入理解OC的继承与复合
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- H5在输入框中显示提示信息
- rabitmqa和kafka
- DREAM: Distributed RDF Engine with Adaptive Query Planner and Minimal Communication-VLDB2015
- 分享技术哪家强(附demo对比)
- 《小王子》读后感
- Objective-C的继承与复合
- 可执行文件装载和进程 笔记
- Objective-C文件组织介绍(附代码)
- ArcGIS 10.5 Geodatabase功能矩阵
- eclipse 添加静态库和动态库
- Objective-C属性详解(附代码)
- 用Struts2做开发时需要导入的包
- Objective-C类别和协议
- Appium英文书推荐