无法从界面创建对象。说“Foo对象用于......”仍然可以接受。或者有必要说“实现Foo的类的对象用于...”
答案 0 :(得分:1)
当Foo是一个接口时,说“Foo对象用于...”是否正确
正如问题所述:
无法从界面创建对象[实例]。
Foo是一个界面,说" Foo对象用于"可以阅读/理解为:
隐含地依赖读者对第一个陈述进行贴现,并理解第二个陈述。依靠这些假设,最好不。
是否有必要说出类似于"实现Foo的类的对象......"
这是明确的,并且是引用实现Foo接口的对象的适当方式。就我个人而言:
实现Foo接口的类的实例
因为它清楚Foo
是什么,并且在同时存在Foo
接口和类的情况下也避免了歧义。
答案 1 :(得分:0)
一个intefrace根本就没有实例,即使它是由一个类实现的(如某些回答中所建议的那样)。
如果一个类实现了一个接口,那么这不会改变接口不能拥有实例的事实。这只会创造一个合同"与类,因为接口是一组功能(属性和方法)。此类的实例仍然是类实例(或对象),而不是接口实例。
接口只能实现或用于引用实现它的类的实例。接口是一种Type。
没有"接口实例" 这样的概念。
UML规范摘录:
可能无法实例化接口。相反,一个接口 规范由BehavioredClassifier实现或实现, 这意味着BehavioredClassifier呈现公共外观 符合接口规范。
"接口可能无法实例化"只是另一种说法"接口没有实例"。
作为一种UML类型,接口可用于访问实现它的类的实例。因此,您可以定义作为接口的Type的变量。但是,您必须实例化相应的类以获取实例并将其引用分配给变量。
用伪语言:
Interface I;
Class C extends I;
I var = new C; // valid instantiation of the class C!
I var2 = new I; // this will clearly not work.
答案 2 :(得分:-1)
你可以使用' X instanceof Foo'因此你可以说' Foo对象' ...