【发布时间】:2013-11-19 12:55:03
【问题描述】:
由于我的代码内容很长,我会尽量保持抽象。 所以,我有一个抽象的父亲,包含适用于所有儿子的方法。
abstract class a {
protected final void a_method() {
...do stuff
}
}
我还有另外两个扩展了 a 的类
class b extends a {
static int _int = 3;
}
还有,
class c extends a {
static int _int = 2;
}
如你所见,我所有的 b 总是有相同的静态 _int 变量,我所有的 c 也总是有相同的 _int 变量。
a_method() 方法对于两个儿子来说是完全相同的代码,只是使用了儿子的变量。
我可以避免代码重复吗?
由于我的变量是静态的,所以我不能在a 中声明它,因为每个儿子的班级需要不同(每个扩展班级的内容不同)
【问题讨论】:
-
parent 和 child 听起来更好:)
-
你试过
Class b到this._int = 3; -
它需要是静态的吗?
-
@user2860598 如果您在 a 类中声明它并按照您的建议使用 this 在任何一个子类中对其进行更改,那么更改将反映在所有其他子类中。跨度>
-
@Chris 是的,否则会更容易,因为我可以在父项中声明它并在子项中覆盖
标签: java oop inheritance abstract-class