gpt4 book ai didi

java - 为什么任何类型都可以EXTENDS接口(interface)?

转载 作者:行者123 更新时间:2023-12-02 07:04:21 25 4
gpt4 key购买 nike

今天我迷失在 Java 多态性中。我做了一些我认为不可能的事情。即 - 我有扩展接口(interface)。

我创建了空接口(interface):

public interface Figure {}

现在没有什么新鲜事。然后我创建了带有参数的参数化类 Board 来扩展我的界面!

public class Board< T extends Figure > { 
T[][] board;
}

我还以为不可能呢!尽管如此,我还是因为不理解而走得更远。

我已经创建了实现Figure接口(interface)的类:

public class Cross implements Figure{}

令我惊讶的是我能够做到这一点:

Board b = new Board<Cross>();

请帮我解释一下这个奇怪的情况。
我对多态了解一点,我明白Cross就是Figure。我很困惑为什么任何类型都能够扩展接口(interface),并且实现接口(interface)(不扩展接口(interface))的类如何作为扩展接口(interface)的参数是正确的。

请帮我解释一下这个多态性的困惑。谢谢。

最佳答案

当你说public class Board< T extends Figure >时,这意味着董事会可以接受 FigureFigure 的子接口(interface)或任何实现这些接口(interface)的类。所以,当你说:

public class Cross implements Figure{}

Board b = new Board<Cross>();

这意味着 Cross 已经实现了 Figure ,因此 Board可以接受Cross ,自 Cross IS-A Figure

就扩展接口(interface)而言,只有接口(interface)才能扩展接口(interface)。因此,以下内容是合法的:

public interface TwoDimensionalFigure extends Figure{}.

所以任何实现 TwoDimensionalFigure 的类也可以通过 Board 接受.

关于java - 为什么任何类型都可以EXTENDS接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16272984/

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