我一直对多态性有点警惕,但仍然不认为我最充分地理解了这个概念。多态/类型投射使用
我了解多态,因为对象可以有多种形式。所以一个对象可以是一种形式,然后是另一种形式?
Mammal (base class) cat (subclass of mammal) supercat (subclass of cat)
Cat newCat = new Cat();
现在我想猫是supercat,这是 “多态”?
SuperCat supCat = (SuperCat)newCat;
这不就像铸造吗?你想什么时候使用铸造?上面的代码行是否有效?所以newCat被转换为Supercat,它是否给newCat更多的内存分配?然后将其复制到supCat?
注 - 多态是使用接口吗?
对不起,您的多态性的理解偏了。多态性只是不同类型分享某些行为的一种方式,而其他行为则不同。如果你想将任何`Cat`转换成`SuperCat`,你必须自己编写这些代码。 – mquander 2011-01-07 06:00:33