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相关推荐

  1. java 7.0 特性_JDK7.0语法新特性

    JDK7.0语法新特性 1,菱形语法(泛型实例化类型自动推断) List list = new ArrayList<>(); // <>这个真的很像菱形 2,在目前版本中,不可 ...

  2. LLVM一些编程语法语义特性

    LLVM一些编程语法语义特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数.全 ...

  3. 二、python基础(列表、元组、字符串、集合、字典、文件操作,函数基本语法及特性)...

    本节内容 列表.元组操作 字符串.列表.字典.集合操作 文件操作 函数基本语法及特性 一.列表.元组操作 列表是我们最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作: 列表操作:切 ...

  4. 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. ...

  5. 【JDK8语法新特性】:超全总结{lamda,stream,optional,新日期类API},JDK8对策略模式支持,可以直接贴代码运行测试。

    文章目录 Java8新特性 速度快 代码更少(增加了新的语法,lamda表达式)(主要) 强大的Stream API(主要) 便于并行 最大减少空指针异常(Optional API) 提供了线程安全的 ...

  6. ES6语法和特性概述(ES5和ES6特性的清晰描述和对比)

    ECMAScript 2015,也被称为ES6,对JavaScript进行了许多修改.下面是一些最常见的特性和语法差异的概述,并在适用的情况下与ES5进行比较 注意: 一个普遍接受的做法是使用cons ...

  7. Object.observe() js新特性

    Object.observe() 用来实时监测js中对象的变化,变化时调用一个方法.使用此方法,可以代替angular中的脏检查,可以大大的提高性能,详情可以看下文. [翻译]Object.obser ...

  8. C# 3.0/3.5语法新特性示例汇总[转]

    //作者:杨卫国 //时间:2008年2月21日 //说明:C#语法新特型示例 using System; using System.Collections.Generic; using System ...

  9. Object C语法学习

    1.OC关键字 synthesize关键字: 根据@property设置,自动生成成员变量相应的存取方法,从而可以使用点操作符来方便的存取该成员变量 . @implementation 关键字: 表明 ...

最新文章

  1. ipsec 网络安全协议
  2. Delphi中静态方法重载还是覆盖的讨论
  3. Python强大的格式化format
  4. css div漂浮向下,DIV+CSS固定底部的漂浮广告
  5. mac android 证书生成工具,MAC系统下,生成安卓证书的命令
  6. 【剑指offer】二叉搜索树转双向链表,C++实现
  7. 数据库设计中常见表结构的设计技巧(转)
  8. (25)Vue.js组件通信—父组件向子组件传值
  9. 前后台字符串进行交互
  10. python编程工时计算_Python编程题:两个日期间的天数统计(附代码)
  11. Python+matplotlib绘制箱线图并设置异常值、中值、均值显示格式
  12. Java之StringUtils的常用方法(非常不错)
  13. 觅风易语言[11-20]
  14. 从心电信号分类过渡到心音信号分类
  15. Thinkpad笔记本电池保养
  16. mysql 存储树形结构
  17. BitLocker解锁之后加锁
  18. Hive 10、Hive的UDF、UDAF、UDTF
  19. sub( ,amp;) C语言,C语言与C++不同之函数定义
  20. vc实现魔兽3改键程序

热门文章

  1. OSS来存储文件 和 自己搭建文件服务器
  2. 18年10月份最新免费申请微软OneDrive5TB云盘超详细教程!(已亲测!)
  3. Dev 增加显示不同风格的窗体样式
  4. C#自定义用户控件之分页
  5. python自学做题记录之光棍的悲伤
  6. “ 总有个人会捡起 七零八落的你 “
  7. 【day4-c\c++入门-三子棋游戏】
  8. 【Python】使用Python做简易爬虫爬取B站评论
  9. 基于51单片机让SG90舵机动起来
  10. 关于FD_WRITE、FD_READ