似乎是一个痛苦的简单问题,我无法找到答案。 让我们说有一个方框:
public class Box {
Object contents;
...
}
我想创建一个Box的子类,它只存储一个Object的子类型,比如String:
public class StringBox extends Box {
String contents;
//added fields/methods
...
}
但是这会影响StringBox父母的内容,这不是我想要做的。我可以使用if语句或其他东西,但这似乎是一个糟糕的解决方法。我也知道可以使用泛型,只有一个Box< T> class,但我想拥有具有额外功能的子类。我也不知道抽象领域,所以我有点不知所措。
如果不清楚,我正在寻找一种将超类继承的字段限制为特定子类型的好方法。如果我遗漏了一些显而易见的事情或更好的做事方式,我道歉。
答案 0 :(得分:1)
我不知道抽象字段
没有if
字段这样的东西。只有方法(分别是类)可以是switch
。
我也知道可以使用泛型并且只有一个
abstract
类,但我想拥有具有额外功能的子类。
在这种情况下,通用abstract
实际上可能是您最好的朋友。此外,如果您的Box<T>
类只是暴露了一些抽象,那么您可以转换为通用接口:
Box<T>