词条 | 强制多态 |
释义 | 强制多态(coercion) 编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。程序设计语言中基本类型的大多数操作符,在发生不同类型的数据进行混合运算时, 编译程序一般都会进行强制多态。程序员也可以显示地进行强制多态的操作(Casting)。 要注意的是并不是任意两个类型之间都可以进行强制多态。在不同类型之间实现强制多态,通常需要执行不同的转换操作。强制多态的原则是:将值集较小(即占用存储空间较小)的类型,变换成值集包含了前者(即占用存储空间较大)的类型,反之,应当注意可能发生的对值的损伤(特别是在使用Casting时)。 有时,强制多态与过载多态是混合出现的。例如,对于表达式1+2; 1.0+2; 1+2.0; 1.0+2.0; 中出现的多态,就会有多种解释: ·操作符+有四种过载多态; ·操作符+只有一种:double * double -> double, 要将参与运算的整数强制变换成浮点数; ·操作符+有两种过载多态:int * int -> int 和 double * double -> double,要将混合运算中的整数强制变换成浮点数。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。