首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >极限子类字段类型

极限子类字段类型
EN

Stack Overflow用户
提问于 2015-12-18 09:56:01
回答 1查看 51关注 0票数 0

似乎是一个痛苦的简单问题,我找不到答案。假设有一个盒子:

代码语言:javascript
复制
public class Box {
    Object contents;
    ...
}

我想要创建一个Box子类,它只存储对象的子类型,比如字符串:

代码语言:javascript
复制
public class StringBox extends Box {
    String contents;
    //added fields/methods
    ... 
}

但这掩盖了StringBox的父服务器中的内容,这不是我想要做的。我可以用一个if语句什么的,但这似乎是一个糟糕的解决办法。我还知道可以使用泛型,并且只有一个Box< T>类,但是我希望有具有额外功能的子类。我也不知道抽象的领域,所以我有点不知所措。

如果不清楚,我正在寻找一种将超类继承的字段限制为特定子类型的好方法。如果我错过了一些显而易见的事情,或者是一种更好的做事方式,我道歉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-18 10:04:31

我也不知道抽象的领域

没有abstract字段这样的东西。只有方法(分别为一个类)可以是abstract

我还知道可以使用泛型,并且只有一个Box<T>类,但是我希望有具有额外功能的子类。

在这种情况下,通用Box<T>实际上可能是您最好的朋友。另外,如果您的Box类只是公开了一些抽象,那么您可以直接转换成一个通用接口:

代码语言:javascript
复制
public interface Box<T> {
    T getContent();
}

public class StringBox implements Box<String> {

    private String contents;

    String getContent();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34352788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档