【发布时间】:2021-12-25 01:46:25
【问题描述】:
所以我正在做一个项目,我有一些关于继承的问题。 我有两个类,名为 Attribute 和 NumericalAttribute。第一个:
public class Attribute {
Attribute() {}
Attribute(String type) {}
}
(这应该是抽象的,但我需要实例化它,所以它不能)
还有一个:
public class NumericalAttribute extends Attribute {
double value;
NumericalAttribute(String value) { this.value = Double.parseDouble(value); }
public double getAtr(Attribute atr) { return this.value; }
}
我有多个 Attribute 子级,每个子级都具有相同的结构,但代表另一种类型(字符串、整数、布尔值)。问题是我需要某种方法来返回“值”变量(我在 NumericalAttribute 中确实有)但是对于属性类。但是我不能在 Attribute 中创建方法,因为每个儿子都会有不同类型的返回。那么有什么办法可以让我通过Attribute获取“value”变量呢? 非常感谢!
public static Atributo transformAtributo(String tipo, String valor) {
Atributo atr = new Atributo();
if (tipo.equals("bool")) atr = new AtributoBoolean(valor);
else if (tipo.equals("string")) atr = new AtributoCategorico(valor);
else if (tipo.equals("num")) atr = new AtributoNumerico(valor);
else if (tipo.equals("set")) atr = new AtributoCategoricoMultiple(valor);
else if (tipo.equals("fecha")) atr = null;
return atr;
}
【问题讨论】:
标签: java generics inheritance