java - 集合 <接口(interface)> 名称 = null;

标签 java collections interface

当你有一个Collection<接口(interface)名称>变量= null时,这到底意味着什么

这是什么类型的变量?

我认为集合本身就是一个接口(interface)。

重新表述问题:

假设您有一个界面。

public interface stack
{
String push();

String pop();

} 

并给出

Collection<stack> myname = null ;

某堂课

你会如何填写我的名字?

最佳答案

你描述的是多态性,是的Collection是一个接口(interface)。它描述了集合的每个客户都可以期望的契约,并且集合的每个实现都必须遵守该契约。在某些时候,变量必须指向符合约定的实际实现,例如 ArrayList。

集合还有另一种形式的多态性,即泛型。因此,集合可以包含特定类型的对象,该类型将在声明集合时确定。该类型本身可以是一个接口(interface),但 Collection 的底层成员必须是所声明类型的具体实现

例如:

// ArrayList honours the contract of Collection
// All members must be a String
Collection<String> var = new ArrayList<String>();

// HashSet honours the contract of Collection
// All members must be one of the implementing classes of Principal
Collection<Prinicpal> users = new HashSet<Principal>();

关于java - 集合 <接口(interface)> 名称 = null;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21805824/

相关文章:

Java 运行时 exec() 和 mysqldump

java - 准确测量物体尺寸

c# - 如何检查 ObservableCollection 中的重复项?

c# - 您将如何实现 IEnumerator 接口(interface)?

interface - F# 将对象强制转换为接口(interface)

c# - 将 Prolog 与 C# (Unity) 结合使用

java - Android 在 Java 中高效地阅读大文本

java - Spring 自动创建属性文件

java - 如何避免嵌套的 forEach 调用?

java - 更改Java接口(interface)后客户端是否需要重新编译?