我们每个苹果都套个盒子,给每本书都套个盒子,但是苹果盒子和书盒子是不同的, 这样下去如果有更多的东西需要套盒子,1000种产品有1000种相应的盒子,造成类型极度膨胀非常难以维护. class Program { static void Main(string[] args) { Apple apple = new Apple() { Color = "Red" }; AppleBox abox = new AppleBox() { Cargo = apple }; Console.W…
C++是强类型语言,所有强类型语言对型别的要求都是苛刻的,型别一有不合编译器就会抱怨说不能将某某型别转换为某某型别,当然如果在型别之间提供了转换操作符或是标准所允许的一定程度的隐式转换(如经过非explicit构造函数创建临时变量的隐式转换或是在int,long这些基本型别间的)又另当别论.总的说来,为了保持型别安全,C++有严厉的要求.然而有时候程序员可能有这样的需要: int i; iong j; X x; //假设X为用户定义的类 any anyVal=i; ... //use anyVa…
JDK5以前,对象保存到集合中就会失去其特性,取出时通常要程序员手工进行类型的强制转换,这样不可避免的就会引发程序的一些安全性问题.例如: ArrayList list = new ArrayList(); list.add("abc"); Integer num = (Integer) list.get(0); list.addAll(new Random()); list.add(new ArrayList()); for(int i = 0;i<list.size();i+…