gpt4 book ai didi

java - 使用抽象方法而不是字段

转载 作者:搜寻专家 更新时间:2023-10-31 08:26:08 24 4
gpt4 key购买 nike

我不知道如何描述我的问题,所以我会给你一个快速的解释。

我想制作一个程序,用户可以在其中选择一种语言,然后以该给定语言打印之后的文本。目前我在想这样的事情:

// Super | class Language;
// Sub | --- class German;
// Sub | --- class English;

if(UserChoseEnglish())
language = new English();
else
language = new German();

英语和德语具有相同的 public static final 字段,因此我可以使用用户选择的 language.anyMethod();。 AFAIK 你不能覆盖字段,所以我正在考虑将所有字段包装在抽象方法(在父类(super class)中)中,只返回值并覆盖它们。

 public abstract class Language
{
public abstract String thanks();
}

public class English extends Language
{
@Override
public String thanks()
{
return "Thanks!";
}
}

public class German extends Language
{
@Override
public String thanks()
{
return "Danke!";
}
}

这被认为是不好的做法吗?我应该只覆盖 getter 方法还是只是错过了一些我不知道的东西?如果您想帮忙,那就太好了。

(我目前只是在玩 Java,并且认为可以选择一种语言会很有趣。如果您有经验可以分享(库,属性,...?),请随时分享):)

最佳答案

如果问题确实是 I18N,您应该按照 @azurefrog 的建议查看 ResourceBundles。除此之外,这是一个合理的 OO 设计——基类定义了一个方法 (thanks()),每个具体的子类都实现了它。

关于java - 使用抽象方法而不是字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25922205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com