作为Object C语法的特性之一Posing
Posing
扮演:作为Object C语法的特性之一。
通过poseAs方法来做到扮演的目的。
扮演的作用:无需要定义子类对象和初始化,就可以通过父类扮演子类来操作
。(等价于子类的直接操作,类似父类转子类)。
例子:
#import "Fraction.h"
@interface FractionB: Fraction
-(void) print;
@end
@implementation FractionB;
-(void) print
{
printf (" (%i/%i) ", numerator, denominator);
}
@end
int main (int argc, char *argv[])
{
Fraction *a;
Fraction *b;
Fraction *result;
[FractionB poseAs: [Fraction class]];
a = [[Fraction alloc] init];
b = [[Fraction alloc] init];
[a setTo: 1 over: 3];
[b setTo: 2 over: 5];
[a print]; printf (" + "); [b print]; printf (" = ");
result = [a add: b];
[result print];
printf ("\n");
[a free];
[b free];
[result free];
return 0;
}
输出结果:
(1/3) + (2/5) = (11/15)
Posing (扮演)和Categories(类目)的区别是:对于子类override父类方法的
情况,Categories 不能再调用父类的被重写的方法了;而Posing 可以通过“
[super 方法];”方式来调用父类被重写的方法。
作为Object C语法的特性之一Posing相关推荐
- java 7.0 特性_JDK7.0语法新特性
JDK7.0语法新特性 1,菱形语法(泛型实例化类型自动推断) List list = new ArrayList<>(); // <>这个真的很像菱形 2,在目前版本中,不可 ...
- LLVM一些编程语法语义特性
LLVM一些编程语法语义特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数.全 ...
- 二、python基础(列表、元组、字符串、集合、字典、文件操作,函数基本语法及特性)...
本节内容 列表.元组操作 字符串.列表.字典.集合操作 文件操作 函数基本语法及特性 一.列表.元组操作 列表是我们最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作: 列表操作:切 ...
- Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结
Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结 1.1. C# 1.0-纯粹的面向对象 1.2. C# 2.0-泛型编程新概念 1.3. ...
- 【JDK8语法新特性】:超全总结{lamda,stream,optional,新日期类API},JDK8对策略模式支持,可以直接贴代码运行测试。
文章目录 Java8新特性 速度快 代码更少(增加了新的语法,lamda表达式)(主要) 强大的Stream API(主要) 便于并行 最大减少空指针异常(Optional API) 提供了线程安全的 ...
- ES6语法和特性概述(ES5和ES6特性的清晰描述和对比)
ECMAScript 2015,也被称为ES6,对JavaScript进行了许多修改.下面是一些最常见的特性和语法差异的概述,并在适用的情况下与ES5进行比较 注意: 一个普遍接受的做法是使用cons ...
- Object.observe() js新特性
Object.observe() 用来实时监测js中对象的变化,变化时调用一个方法.使用此方法,可以代替angular中的脏检查,可以大大的提高性能,详情可以看下文. [翻译]Object.obser ...
- C# 3.0/3.5语法新特性示例汇总[转]
//作者:杨卫国 //时间:2008年2月21日 //说明:C#语法新特型示例 using System; using System.Collections.Generic; using System ...
- Object C语法学习
1.OC关键字 synthesize关键字: 根据@property设置,自动生成成员变量相应的存取方法,从而可以使用点操作符来方便的存取该成员变量 . @implementation 关键字: 表明 ...
最新文章
- ipsec 网络安全协议
- Delphi中静态方法重载还是覆盖的讨论
- Python强大的格式化format
- css div漂浮向下,DIV+CSS固定底部的漂浮广告
- mac android 证书生成工具,MAC系统下,生成安卓证书的命令
- 【剑指offer】二叉搜索树转双向链表,C++实现
- 数据库设计中常见表结构的设计技巧(转)
- (25)Vue.js组件通信—父组件向子组件传值
- 前后台字符串进行交互
- python编程工时计算_Python编程题:两个日期间的天数统计(附代码)
- Python+matplotlib绘制箱线图并设置异常值、中值、均值显示格式
- Java之StringUtils的常用方法(非常不错)
- 觅风易语言[11-20]
- 从心电信号分类过渡到心音信号分类
- Thinkpad笔记本电池保养
- mysql 存储树形结构
- BitLocker解锁之后加锁
- Hive 10、Hive的UDF、UDAF、UDTF
- sub( ,amp;) C语言,C语言与C++不同之函数定义
- vc实现魔兽3改键程序