我有一个问题,我想要一个名为MessageField的广义抽象类型。 MessageField在运行时用于携带字符串值;该类型的其余部分应该是一些常量定义和行为。每个MessageField子类应该是一组常量final成员,用于定义类型,并且如果需要,还可以覆盖其他行为方法。
例如:
例如:
public abstract class MessageField {
//whatever needs to go here to make this work
//methods that define behavior
//e.g. public int getFieldId() { return fieldId; }
}
public class TypeOne extends MessageField {
public final int fieldId = 1; //type defining member
public final String tag = "->"; //type-defining member
public String fieldValue; //freely settable/gettable
//change any behavior if necessary
}
public class TypeTwo extends MessageField {
public final int fieldId = 2;
public final String tag = "++";
public String fieldValue;
}
public class TypeThree extends MessageField {
public final int fieldId = 3;
public final String tag = "blah";
public String fieldValue;
}
每个子类在编写时应该被强制定义fieldId和tag的值。我认为从概念上讲,这些值对于每种类型来说是静态常量,但继承如何工作呢?我需要所有不同类型都符合一个可以传递的宽泛类型。
也许继承并不是实现这种模式的最佳方式,但如果不是,还有什么其他方法呢?如果使用继承,则应如何实现?
谢谢!