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

问题描述 投票:0回答:1

有这个:

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

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

java extends
1个回答
1
投票

使用泛型类型

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

public class D extends C<SomeConcreteType>{
     //x will be SomeConcreteType
}
© www.soinside.com 2019 - 2024. All rights reserved.