gpt4 book ai didi

java - 类似的子类

转载 作者:行者123 更新时间:2023-11-30 07:25:12 24 4
gpt4 key购买 nike

假设我有一个像这样相当简单的 A 类 -

public class A{
private int randomField = 0;
protected int key;
protected double dmg;
}

现在我想编写一些继承 protected 字段的子类,并且仅根据分配给这些字段的初始值有所不同 - 例如,如果我写了两个子类 B 和 C,两者之间的唯一区别这两个子类将是值 key 和 dmg 将具有不同的值。他们将共享一个方法 set,该方法将完全相同,因为它会影响相同的变量。

我发现在编写这些子类时我在重复自己,因为我只是更改构造函数以将不同的初始值设置为 key 和 dmg,然后简单地复制并粘贴 set 方法。

是否有“好的”方法来做到这一点?

最佳答案

这不是您应该进行子类化的地方,实际上是对继承的严重过度使用。如果“子类”之间的唯一区别是对象的初始状态,则只对所有对象使用一个类,而不是简单地在构造函数或工厂中设置状态以创建所需状态的实例。

例如,

public class A{
private int randomField = 0;
private int key;
private double dmg;

public A(int key, double dmg) {
this.key = key;
this.dmg = dmg;
}

// getters and possibly setters...
}

关于java - 类似的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11068637/

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