当前位置: 首页 > 面试题库 >

为什么Java中的许多Collection类都会扩展抽象类并实现接口?

黄俊雄
2023-03-14
问题内容

为什么Java中的许多Collection类都扩展Abstract类并实现接口(也由给定的Abstract类实现)?

例如,class HashSet扩展了AbstractSet并且也实现了Set,但是AbstractSet已经实现了Set


问题答案:

这是记住此类真正实现该接口的一种方式。
它不会有任何不良影响,并且可以帮助您理解代码,而无需遍历给定类的完整层次结构。



 类似资料:
  • 我是Java新手,来自C语言背景,我试图理解接口和实现接口的抽象类的概念。当抽象类实现接口时,会发生什么?这是否像继承一样工作,即所有接口方法都属于abtract类,即使它们没有在其中实现?还是只有实现的方法属于抽象类?那么,除了一个用于实现接口,另一个用于继承之外,实现和扩展之间有什么区别吗?

  • 问题内容: 为了减少类的依赖性,我想将参数(使用泛型类)发送到扩展某些类并实现接口的构造函数,例如 可能吗? 此外,使用T类,我想使用T.getActivity()作为Context创建视图。 问题答案: T必须扩展Fragment并实现SomeInterface 在这种情况下,您可以声明以下内容: 这将需要扩展和实现类型的对象。 此外,使用T类,我想使用T.getActivity()作为Cont

  • 问题内容: 工具的实现以及扩展。但是在Java文档中,您可以看到AbstractList已经实现了List。那么实现List以及扩展AbstractList是否不是多余的? 我的第二个问题, 请看下面的代码: Arrays类的方法包含其自己的ArrayList实现。但这仅扩展AbstractList而未实现List。但是上面的代码可以编译。 但是将代码修改为以下内容时 我收到一个错误: 这是什么原

  • 问题内容: 为什么接口不扩展接口?不是键值对的集合吗? 问题答案: 集合假定一个值的元素。映射假定键/值对的条目。他们本来可以重新使用相同的通用接口,但是它们实现的某些方法不兼容,例如 您可以将Map建模为条目的集合,这就是这样做的。 有一些共同的方法。,,,但这些都不太可能有多少价值作为一个独立的接口。(可以再次使用)

  • 类和的行为有何不同?我为什么要选择其中一个? (目前,TypeScript手册和语言规范不包括抽象类。)

  • 问题内容: 事实并非如此,这让我感到惊讶。 我认为,如果这样声明,那将是很有意义的: 毕竟,是的集合,不是吗? 那么,为什么没有这样一个很好的实现呢? 感谢Cletus提供的最权威的答案,但是我仍然想知道为什么,如果你已经可以查看(通过),那么它不仅扩展了该接口。 如果a 是a ,则元素是什么?唯一合理的答案是“键值对” 确实会很棒! 但这提供了非常有限的(且不是特别有用的)Map抽象。 但是,如