更新:让我在这里添加一个并发症。假设createObject()返回一个Object实际实现 2 个接口的 -SomeInterface和AnotherInterface. 调用者为了使用Object必须将其类型转换为接口之一。在这种情况下,下面的代码片段可以吗?
我有一个“工厂方法”,它在内部创建一个“未知”类型的对象并只返回一个“对象”。该工厂方法(例如 createObject() )的文档清楚地表明,由此创建/返回的对象将实现特定接口(例如 SomeInterface)。所以我有一个代码片段如下:
SomeInterface intf = (SomeInterface) createObject();
如果(比如说)createObject()返回一个Object未实现的SomeInterface. 但是一个 Java 专家说这段代码是“错误的”——原因(根据他的说法)是,createObject()必须返回SomeInterface。
我不太相信,愿意向这里的社区学习。