如果有人不理解这个问题,请告诉我。我尽力提出下面的问题。我在父类中有一个通用的方法来生成模式。为了重用性,我想在父类下保留这个方法。
在方法内部,我使用了几个变量。所以我认为最好将对象作为参数传递给方法generatePattern。但是由于变量不能被覆盖,我怎样才能使用这些子类中的各个变量呢?除了使用子类之外,java中的任何其他功能?在这种情况下,“通用类型”作为参数是否有效?
class Parent {
int var1;
String[] values;
void generatePattern(Parent obj1) {
// This will not make use of respective values of
// subclass object that is passed I guess.
newPattern(obj1.values, obj1.var1);
}
}
class AscendSubClass extends Parent {
int var1 = 5;
String[] values = {"S", "R"};
}
class DescendSubClass extends Parent {
int var1 = 10;
String[] values = {"N", "D"};
}
我可以将上面的 AscendSubClass 或 DescendSubClass 传递给 generatePattern()。在这个方法中,我需要使用变量 var1、values 和许多其他子类的变量。这些变量类型相同,名称相同,但值不同,取决于子类。我现在如何在 generatePattern() 中引用这些变量,以便该方法不会改变?可以通过将变量作为方法的参数或通过 if/else 语句来实现这一点,但是我有几个变量要传递,这很不方便。