笼子必须能够容纳 两种 动物。“ super”表示-表示笼子必须能够容纳 所有 类型的动物-也许还有其他一些东西,因为它
? superAnimal可能是Animal的超类。“扩展”表示它可以容纳 某些 动物-例如,也许只是狮子,例如:
Cage<? extends Animal> cage = new Cage<Lion>();
这是一个有效的声明,但很明显,狮子笼不会容纳蝴蝶,所以
cage.add(new Butterfly());
不会编译。该声明
cage.add(new Lion());
也不会编译,因为这里的Java正在查看笼的声明
Cage<? extends Animal>--而不是现在分配给它的对象(
Cage<Lion>)。



