我可以将扩展 class 中的变量类型强制转换为 Java 中的子类型吗?
Can I force the type of a variabile in a extended class to a subtype in Java?
有这个:
public class A{}
public class B extends A{}
public class C{
protected A x;
}
有没有什么方法可以创建一个扩展 C 的 class D,使得 x
的类型在所有 D 的实例中都必须是 B
?请注意,C 是我正在编写的 class,因此我可以故意对其进行编辑以满足 D 的需要。
使用通用类型
public class C<T>{
protected T x;
}
public class D extends C<SomeConcreteType>{
//x will be SomeConcreteType
}
有这个:
public class A{}
public class B extends A{}
public class C{
protected A x;
}
有没有什么方法可以创建一个扩展 C 的 class D,使得 x
的类型在所有 D 的实例中都必须是 B
?请注意,C 是我正在编写的 class,因此我可以故意对其进行编辑以满足 D 的需要。
使用通用类型
public class C<T>{
protected T x;
}
public class D extends C<SomeConcreteType>{
//x will be SomeConcreteType
}