似乎是一个痛苦的简单问题,我找不到答案。假设有一个盒子:
public class Box {
Object contents;
...
}我想要创建一个Box子类,它只存储对象的子类型,比如字符串:
public class StringBox extends Box {
String contents;
//added fields/methods
...
}但这掩盖了StringBox的父服务器中的内容,这不是我想要做的。我可以用一个if语句什么的,但这似乎是一个糟糕的解决办法。我还知道可以使用泛型,并且只有一个Box< T>类,但是我希望有具有额外功能的子类。我也不知道抽象的领域,所以我有点不知所措。
如果不清楚,我正在寻找一种将超类继承的字段限制为特定子类型的好方法。如果我错过了一些显而易见的事情,或者是一种更好的做事方式,我道歉。
发布于 2015-12-18 10:04:31
我也不知道抽象的领域
没有abstract字段这样的东西。只有方法(分别为一个类)可以是abstract。
我还知道可以使用泛型,并且只有一个
Box<T>类,但是我希望有具有额外功能的子类。
在这种情况下,通用Box<T>实际上可能是您最好的朋友。另外,如果您的Box类只是公开了一些抽象,那么您可以直接转换成一个通用接口:
public interface Box<T> {
T getContent();
}
public class StringBox implements Box<String> {
private String contents;
String getContent();
}https://stackoverflow.com/questions/34352788
复制相似问题