我的课程包含数据和逻辑。
现在我需要很多不同的水果,只有不同之处:名称,位图和其他一些数据。
为每个水果制作新的子类是否有任何意义?他们与水果有“一种”关系。但他们不会添加新的行为或字段。
也许最好只是给fuit一个“类型”字段,而不是子类化它?这有什么不对吗?
答案 0 :(得分:2)
你想要区分什么类型的水果?如果它只是一个输入缺陷,我倾向于使用枚举值,从基类中定义的枚举列表(在本例中为fruit),然后在继承类的构造函数上传递或初始化。
例如
class Fruit
{
public:
enum Type { SPIKEY, RED, ROUND, SQUISHY };
Fruit(Type type)
{
mType = type;
}
protected:
Type mType;
};
您只需在构造函数中为名称等定义特定值
答案 1 :(得分:2)
如果我理解正确,一个课程就足够了。初始化时,可以传递名称。
public class Fruit{
String name;
...//bit map, etc
public Fruit(String name, ...){
this.name=name;
...//bit map
}
}
用户类:
Fruit apple = new Fruit("apple", ...);