【发布时间】:2016-06-07 00:13:57
【问题描述】:
我是一名非程序员,很少接触编码,但我想修改现有的代码库。我已经大大简化了我在下面使用的代码。如果我可以提供任何进一步的信息,或者这根本没有意义,请告诉我!词汇很难。 :)
在 ClassA 中,我正在实例化 ClassB 的子类。我要进行的更改需要一个新变量“myVar”(在 ClassA 中设置)可用于子类 ClassC 但不能用于子类 ClassD。使该变量可用于 ClassC 的最合适的方法是什么?
A 类:
public class ClassA {
private String myVar = "hi";
private String myStuff = "bye";
private int myOption = 1;
private String getMyClass(String myStuff) throws Exception {
final MyClassChoice myClass = getMyClassChoice(myOption);
return myClass.getResponse(myStuff);
}
private MyClassChoice getMyClassChoice(myOption) {
switch(myOption) {
case 1:
return new ClassC();
case 2:
return new ClassD();
}
}
}
B 类:
public class ClassB {
public abstract String getResponse(String myStuff) throws IOException;
}
C类:
public class ClassC extends ClassB {
// do stuff with myStuff
// do stuff with myVar
}
D 类:
public class ClassD extends ClassB {
// do stuff with myStuff
}
【问题讨论】:
-
声明字段私有 - 私有字段不被继承
-
@MaciejCygan 但是 ClassC 将如何访问它?
-
为什么不把
myVar传递给ClassC的构造函数? -
@DrewKennedy 是的,是的...... :(,Shmosel 的实际建议并不是一个坏主意。
标签: java