今天我迷失在 Java 多态性中。我做了一些我认为不可能的事情。即 - 我有扩展界面。
我创建了空界面:
public interface Figure {}
目前没有什么新鲜事。然后我创建了参数化类 Board,它带有扩展我的界面的参数!
public class Board< T extends Figure > {
T[][] board;
}
我以为不可能!尽管如此,我还是在不理解的情况下走得更远。
我创建了实现 Figure 接口的类:
public class Cross implements Figure{}
令我惊讶的是,我能够做到这一点:
Board b = new Board<Cross>();
请帮助我并向我解释这种奇怪的情况。
我对多态性略知一二,明白Cross就是Figure。我很困惑为什么任何类型都能够扩展接口,而实现接口(不扩展接口)的类如何作为扩展接口的参数是正确的。
请帮助我并解释这种多态混乱。谢谢。