![](/img/trans.png)
[英]Can I access static member variables defined on the subclass from a method on the abstract superclass?
[英]How to access (shadowing) member variables in subclass from method in superclass?
讓我知道是否有人不明白這個問題。 我盡力提出以下問題。 我在父類中有一個通用方法來生成模式。 為了提高可用性,我認為應將此方法保留在父類下。
在方法內部,我使用了幾個變量。 因此,我認為最好將對象作為參數傳遞給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,值和子類的許多其他變量。 這些變量具有相同的類型並具有相同的名稱,但是值不同並且取決於子類。 我現在如何在generatePattern()中引用這些變量,以使該方法不變? 可以通過將變量作為方法的參數或通過if / else語句來實現此目的,但是我要傳遞多個變量,這帶來了很大的不便。
添加一個getter方法,並在任一子類中覆蓋它。
public int getVar() {
return var1;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.