继承
只是想谈谈在OC中继承的理解:
面向对象语言中一个主要的功能就是继承。继承可以使用现在类的所用功能,是对功能的扩展,通过继承创建的新类称为“子类”或“派生类”,被继承的称为“基类”或者“父类”。继承的过程就是从一般到特殊的过程。
语法规则:@interface 子类: 父类
下面的代码就是一个例子:
1,创建汽车类,声明并实现其属性和方法。
2,创建卡车类,继承于汽车类,声明并实现其特有的方法和属性
3,创建出租车类。继承与汽车类,声明并实现其特有的属性和方法。
4,在main.m中测试子类是否能继承父类的属性和方法。
1 #import <Foundation/Foundation.h>
@interface Car : NSObject
@property(nonatomic,assign)NSString *brand;
@property NSString *color;
-(void)brake;
-(void)quicken;
@end #import "Car.h"
@implementation Car
-(void)brake
{
NSLog(@"%@车刹车了!",_brand);
}
-(void)quicken
{
NSLog(@"%@车加速了!",_brand);
}
@end #import "Car.h"
@interface Truck : Car
@property(nonatomic,assign)float maxWeight;
-(void)unload;
@end #import "Truck.h"
@implementation Truck
-(void)unload
{
NSLog(@"%@颜色的%f载重的%@货车\n开始卸货!",self.color,self.maxWeight,self.brand);
}
@end #import "Car.h"
@interface Taxi : Car
@property(nonatomic,assign)NSString *company;
-(void)printTick;
@end #import "Taxi.h"
@implementation Taxi
-(void)printTick
{
NSLog(@"%@公司%@颜色的%@出租车\n开始打印发票!",self.company,self.color,self.brand);
}
@end 输出结果:

2016-02-26 19:22:05.689 CarNew[3045:405948] 法拉利车刹车了!


2016-02-26 19:22:05.690 CarNew[3045:405948] 法拉利车加速了!


2016-02-26 19:22:05.690 CarNew[3045:405948] 白颜色的2.600000载重的法拉利货车


开始卸货!


2016-02-26 19:22:05.690 CarNew[3045:405948] 宝马车刹车了!

2016-02-26 19:22:05.691 CarNew[3045:405948] 宝马车加速了!

2016-02-26 19:22:05.691 CarNew[3045:405948] 中国四方公司黑颜色的宝马出租车

开始打印发票!


Objective-C继承的更多相关文章

  1. Automake

    Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...

  2. Objective C运行时(runtime)

    #import <objc/runtime.h> void setBeingRemoved(id __self, SEL _cmd) { NSLog(@"------------ ...

  3. Objective C类方法load和initialize的区别

    Objective C类方法load和initialize的区别   过去两个星期里,为了完成一个工作,接触到了NSObject中非常特别的两个类方法(Class Method).它们的特别之处,在于 ...

  4. Objective C运行时(runtime)技术的几个要点总结

    前言:          Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表.属性列表.变量列表,修改方法.属性,增加方法,属性等等,本文对相 ...

  5. Objective-C与C++的区别

    1.两者的最大相同:都是从C演化而来的面相对象语言,两者都兼容标准C语言 2.两者的最大不同:Objective-C提供了运行期动态绑定机制,而C++是编译静态绑定,并且通过嵌入类(多重继承)和虚函数 ...

  6. OC 继承子类对象调用方法机制 子类对象访问父类中的实例变量

    在继承中,子类对象如何调用到正确方法的机制 每一个Objective - C对象都有一个隐藏的指针指向类的代码,当向一个对象发送消息的时候,当前的对象会首先在当前类里去查找相应的方法,如果找到的话,直 ...

  7. Objective-C----MRC内存管理 、 自动释放池 、 面向对象三大特性及封装 、 继承 、 组合与聚合

    1 MRC练习 1.1 问题 引用计数是Objective-C语言采用的一种内存管理技术,当一个对象被创建在堆上后,该对象的引用计数就自动设置为1,如果在其它对象中的对象成员需要持有这个对象时,则该对 ...

  8. iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用

    swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...

  9. iOS开发——新特性OC篇&Objective新特性

    Objective新特性 Overview 自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时, ...

  10. Objective中的协议(Protocol)

    Objective中的协议(Protocol) 作用: 专门用来声明一大堆方法. (不能声明属性,也不能实现方法,只能用来写方法的声明). 只要某个类遵守了这个协议.就相当于拥有这个协议中的所有的方法 ...

随机推荐

  1. urllib2.URLError: <urlopen error [Errno 104] Connection reset by peer>

    http://www.dianping.com/shop/8010173 File "综合商场1.py", line 152, in <module>    httpC ...

  2. RedHat Enterprise Linux 6.3 安装Oracle Database 11g

    按照以下文章正确将oracle安装在linux上 http://yiyiboy2010.iteye.com/blog/1670795 http://mirrors.163.com/centos/6.5 ...

  3. genymotion 模拟器 真是牛叉了 速度超快啊!!! 不解释了!建议大家速度去体验一把吧!

    已经有人写了blog了 我就不再赘述了,详情去这里看去吧!!   android genymotion模拟器怎么使用以及和google提供的模拟器性能对比  http://blog.csdn.net/ ...

  4. Image editing techniques and algorithms using Qt

    费了好半天劲先翻译这一点.还有好多地方不明白.先弄明白这一点.继续以后的翻译. 这一篇文章我们将讨论不同的技术和算法来修改图像使用Qt.但是在这之前我们继续你必须知道一些原则处理图片. 这里主要有两种 ...

  5. MySQL 5.6.19 二进制安装

    1.        操作系统 CentOS release 6.2 (Final) 2.        创建用户和组 [root@mymaster1 ~]# groupadd mysql [root@ ...

  6. JavaScript之共享onload

    我们知道,当我们将JS代码脚本放到<head></head>标签之间时,这是的js代码加载要先于DOM加载,而我们往往会在JS代码脚本中写一些获取DOM元素的代码,而此时的DO ...

  7. ASPxComboBox-通过回车过滤结果集

    Dev ASP.NET组件中的ASPxComboBox可以方便的根据输入内容进行过滤,不过对于数据量较大或者用户数较多的情况下,这个功能会给服务器带来严重的负担,因此我们应该输入自己想要查询的字符串时 ...

  8. collectionView 中cell间距设置建议

    应该是调节UICollectionViewFlowLayout的minimumInteritemSpacing属性,这个是调节同一行的cell之间的距离的. 使用-(CGFloat )collecti ...

  9. OpenGL学习之windows下安装opengl的glut库

    OpenGL学习之windows下安装opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装.  Windows环境下的GLUT下载地址:(大小约为15 ...

  10. 排序算法——交换排序(冒泡排序、快速排序)(java)

    一.冒泡排序 时间复杂度:O(n^2) 公认最慢的排序,每次把最大/最小的放一边,原理: [57,68,59,52] [57,68,59,52] [57,59,68,52] [57,59,52,68] ...