我知道投射只能从子类到超类(上投)完成,但此示例说明了我想要执行的操作。将超类的对象投射到子类 - 向下投射
Class Super {}
Class Sub extends Super {}
Super super = new Super();
Sub sub = (Sub)super;
我相信这是因为这是不允许的那么“向下”铸...
什么是创建给定类型超级的对象类型分的目标的最佳方式提及。
编辑:
这是问题 - 什么是对动物转化成猫的最佳途径。
答案?从一个基本类型的动物开始,并将属性复制到猫。添加毛皮和尾巴等。基本上是一个拷贝构造函数。这是正确的答案(还是很好的答案)?
ANOTHER编辑:
我想我的问题是很清楚的,但也许是过于笼统。要求采取“最佳”方式做某些事情往往会给出很多不同的答案。我意识到在不同情况下最好的方式可能会有所不同。
我不是在寻找关于Java或OO基础知识的教程。只是在征求意见,以便我可以解决这个问题,因为我已经用最佳实践概述了它。
从你的问题来看,你不清楚你知道什么,你不知道什么。所以,当人们回答*时,不要感到惊讶,我相信这被称为“下来”投射,这是不允许的*部分而不是(非常模糊的)“实际问题。”是的,复制构造函数就是这样。不,它不是唯一的,工厂方法会很好。不,这不是最好的 - 我们不知道你有什么限制和假设。 – alf 2012-01-06 13:36:26
@alf我可以告诉你我的问题很清楚 - 你能否就如何在一般情况下提出问题提供更多建议?我希望能够问一个问题,增加网站的价值,并获得有价值的回应,但在这种情况下,似乎我有一种失败......误解,低调,我最终有点沮丧。 – Matthew 2012-01-06 13:44:49
好吧,我可以看到选票的细分,并且没有票下来。没有投票,但那不是重点,是吗?标准的HOWTO应该是http://catb.org/~esr/faqs/smart-questions.html - 这很好,关键点。在目前的问题上,我会说责怪那些试图帮助的人不是一个很有创意的想法;说明你的问题很清楚,当你需要两次编辑是非常接近的责备,只有少数人会注意到这种差异。在这里添加“感谢您实际阅读我的问题”,您将获得公平的侵略性。善待。修复错误。不要责怪 – alf 2012-01-06 13:52:08