Oop 这样说对吗;“Foo对象用于…”;当Foo是一个接口时
无法从接口创建对象。说“Foo对象用于…”是否仍然可以接受。或者有必要说“实现Foo的类的对象用于……”这样的话吗?你可以使用“X instanceof Foo”,因此你可以说“Foo Objects”…一个intefrace根本就不能有实例,即使它是由类实现的,也不能有实例 如果一个类实现了一个接口,这不会改变接口不能有实例的事实。这将只创建与类的“契约”,因为接口是一组特性(属性和方法)。此类的实例仍然是类实例(或对象),而不是接口实例 接口只能实现或用于引用实现它的类的实例。接口是一种类型 没有“接口实例”这样的概念 UML规范摘录: 接口不能被实例化。而是一个接口 规范由BehavioredClassifier实现或实现, 这意味着BehavioredClassifier呈现了一个公共外观 符合接口规范的 “接口可能不会被实例化”只是“接口没有实例”的另一种说法 作为一种UML类型,可以使用接口访问实现它的类的实例。因此,您可以定义一个接口类型的变量。但是,必须实例化相应的类才能获取实例并将对该实例的引用分配给变量 使用伪语言:Oop 这样说对吗;“Foo对象用于…”;当Foo是一个接口时,oop,terminology,Oop,Terminology,无法从接口创建对象。说“Foo对象用于…”是否仍然可以接受。或者有必要说“实现Foo的类的对象用于……”这样的话吗?你可以使用“X instanceof Foo”,因此你可以说“Foo Objects”…一个intefrace根本就不能有实例,即使它是由类实现的,也不能有实例 如果一个类实现了一个接口,这不会改变接口不能有实例的事实。这将只创建与类的“契约”,因为接口是一组特性(属性和方法)。此类的实例仍然是类实例(或对象),而不是接口实例 接口只能实现或用于引用实现它的类的实例。接口是一种类型
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.
当Foo是一个接口时,说“Foo对象用于…”是否正确
不
如问题所述:
无法从接口创建对象[实例]
其中,Foo是一个接口,“Foo对象用于”可以理解为:
- 可以实例化Foo接口
- 实现Foo接口的类的对象
因为什么是
Foo
非常清楚,并且避免了在既有Foo
接口又有类的情况下出现歧义。不,你不能(向下投票),请参阅其他评论和我的答案。我不同意,问题不是“我可以实例化接口吗”,而是“我可以引用接口的实现者并将其称为“对象”。。。我想我们都同意这样一个事实:接口不能安装,但可以有一个带有对象的实现者,因此,因为它的“子”是接口的“实例”,我们可以非正式地引用接口的对象,你可以说任何你想说的话,即使它是非常不正确的。你说“你可以使用'X instanceof Foo',因此你可以说'Foo objects'…”所以,你从一个错误的语句('X instanceof Foo')开始,得出了一个错误的结论。如果这不是误导,我不知道是什么。如果X实现了Foo,那么instanceof将返回true,您可能不同意,但它仍然是true…这句话有什么不对?虽然您在技术上是正确的,但我认为这是一个过于迂腐的命运。实现接口的类的实例就是实现接口的实例。事实上,重读问题-1是你对其他答案的唯一咆哮,而实际上没有提供答案,或者有必要说类似于代码>。