gpt4 book ai didi

java - 泛型编程是多态性的一个例子吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:48:07 25 4
gpt4 key购买 nike

我正在做一项家庭作业(一个项目),其中一个标准是我必须以一种能显着提高我的代码的整体质量或功能的方式使用多态性。

我制作了一个如下所示的哈希表:

public class HashTable<E extends Hashable>{
...
}

其中 Hashable 是我创建的具有 hash() 函数的接口(interface)。

我知道以这种方式使用泛型可以提高我的代码质量,因为现在 HashTable 几乎可以处理我想要的任何类型(例如,不仅仅是整数或字符串)。但我不确定它是否展示了多态性。

认为是的,因为 E 可以是实现 Hashable 的任何类型。换句话说,HashTable 是一个可以处理(实际上)任何类型的类。

但我不太确定 - 多态性吗?或许我可以澄清一下多态性究竟是什么?

提前致谢!


编辑:收到下面的答案后(参见:first answer received),我阅读了维基百科文章,发现了这个:

“在面向对象的编程社区中,使用参数多态性的编程通常称为泛型编程。” (强调)

最佳答案

简而言之,多态性是采用许多共享公共(public)基类(或接口(interface))的不同类,并将它们全部视为该公共(public)基类的成员,而不知道或不关心它们是哪个特定的继承类或它们的精确程度实现公共(public)功能。在面向对象的编程中,多态性为您提供了问题域的那部分的相对高级 View - 您是说,“这段代码不关心这些对象的具体细节 - 只是它们实现了一些通用功能 X ,Y,Z”或“只是它们都是基本类 BaseClass.

您的示例使用了多态性,因为您定义了一个 Hashable 基类 - 并提供了一个只关心它接收的对象的那个方面的函数。 Hashable 对象可能有多种形式,但您的代码将它们全部视为一个基本类型。

关于java - 泛型编程是多态性的一个例子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com