java - 我可以将扩展类中的变量类型强制转换为 Java 中的子类型吗?

标签 java extends

有了这个:

public class A{}
public class B extends A{}
public class C{
    protected A x;
}

有没有办法创建一个扩展 C 的类 D,使得所有 D 实例中的 x 类型必须是 B?请注意,C 是我正在编写的一个类,因此我可以有意编辑它来完成 D 的需求。

最佳答案

使用泛型类型

public class C<T>{
    protected T x;
}

public class D extends C<SomeConcreteType>{
     //x will be SomeConcreteType
}

关于java - 我可以将扩展类中的变量类型强制转换为 Java 中的子类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55346716/

相关文章:

java - java中 vector 的使用

java - 删除目录Java中的文件类型

java - super()的使用;在 java

java - Java中没有 "extends"关键字的继承

java - strictfp 关键字在实现/扩展接口(interface)/类时的行为

java - Android:内存/资源泄漏

java - 定义一个与其所在类同名的枚举

c++ - 类扩展 GtkWindow

javascript - 如何将 '__extends = function () {}'重写为对象

java - Spring:解码 XML 字符串时出现 OXM 错误(castor)