【发布时间】:2014-12-29 21:46:00
【问题描述】:
这是我的第一个问题,所以如果有问题请不要生我的气。
问题来了: 我们有类节点。它是 Item 类的基类。所以基本上:
public class Item extends Node
好的,一切都很好。但是我们也有一个类,我们称之为 NodeFactory,它包含静态方法 loadNodeAssets 作为结果返回 Node。
public static Node loadNodeAssets (String path)
在我使用的库中,它是初始化 Node 类并将资产加载到其中的唯一方法。但主要问题是我需要获取 Item 类实例而不是 Node。我怎么能做到呢?
Item f = (Item)NodeFacory.loadNodeAssets ("...")
由于返回类的类型为 Node 而不是 Item,因此无法正常工作。 基本上我需要构造 Fish 类并初始化 Fish 类扩展的 Node 类中的继承字段。 对不起我的英语不好。希望得到您的帮助。谢谢!
【问题讨论】:
-
好吧,仅仅因为
Item extends Node并不意味着所有Nodes都是Items(反之亦然)所以你不能自动将Node转换为@987654328 @(它可以是任何其他与Item完全不同的对象) - 相反,您可能需要手动复制所需的字段(属性)或借助属性映射库
标签: java oop factory extending-classes