首页 > 解决方案 > Java 不兼容类型:子类无法转换为父类

问题描述

在我的 java 代码中,我有一个通用父数据结构的实例,该实例使用通用子结构的新实例进行实例化。

private ParentHand<ParentCard> hand;

public Foo() {
    // Java: Incompatible types: ParentHand<ParentCard>
    // cannot be converted to ChildHand<ChildCard>();
    hand = new ChildHand<ChildCard>();
}

父接口构造如下:

public interface ParentHand<T extends ParentCard> { ... }
public interface ParentCard extends Comparable<ParentCard> {...}

子接口构造如下:

public interface ChildHand<T extends ParentCard> implements ParentHand<T> { ... }
public interface ChildCard implements ParentCard { ... }

我相信由于多态性,上述内容应该有效。这是用Java 11编写的。为什么会Foo()抛出这个错误?

标签: java

解决方案


推荐阅读