Objective-C继承
继承
只是想谈谈在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继承的更多相关文章
- Automake
Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...
- Objective C运行时(runtime)
#import <objc/runtime.h> void setBeingRemoved(id __self, SEL _cmd) { NSLog(@"------------ ...
- Objective C类方法load和initialize的区别
Objective C类方法load和initialize的区别 过去两个星期里,为了完成一个工作,接触到了NSObject中非常特别的两个类方法(Class Method).它们的特别之处,在于 ...
- Objective C运行时(runtime)技术的几个要点总结
前言: Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表.属性列表.变量列表,修改方法.属性,增加方法,属性等等,本文对相 ...
- Objective-C与C++的区别
1.两者的最大相同:都是从C演化而来的面相对象语言,两者都兼容标准C语言 2.两者的最大不同:Objective-C提供了运行期动态绑定机制,而C++是编译静态绑定,并且通过嵌入类(多重继承)和虚函数 ...
- OC 继承子类对象调用方法机制 子类对象访问父类中的实例变量
在继承中,子类对象如何调用到正确方法的机制 每一个Objective - C对象都有一个隐藏的指针指向类的代码,当向一个对象发送消息的时候,当前的对象会首先在当前类里去查找相应的方法,如果找到的话,直 ...
- Objective-C----MRC内存管理 、 自动释放池 、 面向对象三大特性及封装 、 继承 、 组合与聚合
1 MRC练习 1.1 问题 引用计数是Objective-C语言采用的一种内存管理技术,当一个对象被创建在堆上后,该对象的引用计数就自动设置为1,如果在其它对象中的对象成员需要持有这个对象时,则该对 ...
- iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用
swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...
- iOS开发——新特性OC篇&Objective新特性
Objective新特性 Overview 自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时, ...
- Objective中的协议(Protocol)
Objective中的协议(Protocol) 作用: 专门用来声明一大堆方法. (不能声明属性,也不能实现方法,只能用来写方法的声明). 只要某个类遵守了这个协议.就相当于拥有这个协议中的所有的方法 ...
随机推荐
- Oracle EBS-SQL (SYS-2): sys_在线用户查询.sql
SELECT fs.USER_NAME, fu.description, fs.RESPONSIBILITY_NAME, fs.USER_FORM_NAME, ...
- 柯南君:看大数据时代下的IT架构(6)消息队列之RabbitMQ--案例(Publish/Subscribe起航)
二.Publish/Subscribe(发布/订阅)(using the Java Client) 为了说明这个模式,我们将构建一个简单的日志系统.它将包括两个项目: 第一个将发出日志消息 第二个将接 ...
- 一个Windows C++的线程类实现
Thread.h [cpp] view plaincopy #ifndef __THREAD_H__ #define __THREAD_H__ #include <string> #inc ...
- Nanjing GDG Meetup 8月线下活动
致各位亲爱的 Google 技术爱好者 很高兴的通知各位朋友,Nanjing GDG 将在本周六 (08/31) 举办线下活动,讨论 Android 开发实战技巧,热烈欢迎大家报名参加. 时间: 8 ...
- mysql长连接和短连接的问题
什么是长连接? 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态. 通常的短连接操作步骤是: 连接->数据传输->关闭连接: 而长连接通常就是: 连接-> ...
- Introduction the naive“scull” 《linux设备驱动》 学习笔记
Introduction the naive "scull" 首先.什么是scull? scull (Simple Character Utility for Loading Lo ...
- SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled 今天是2013-09-17,在今天学习sql ...
- OS笔记047代理传值和block传值
在两个不同的控制器之间传递数据,可以使用代理传值或者block传值. 例子是一个简单通讯录. 主界面如下: 添加联系人界面 查看/编辑联系人界面:默认是查看模式,点击编辑后进入编辑模式 编辑模式 数据 ...
- WebPart设置杂项
CS写法: } 后台写法: public D_ZoneLimitView WebPart { get; set; }
- SQLServer .mdf和.ldf文件
.mdf:是数据库数据文件,存放一个数据库的数据信息. .ldf:是数据库日志文件,即日常对数据库的操作的记录如(增.删.改)的文件.