Дайте мне знать, если кто-то не понимает этот вопрос. Я изо всех сил старался сформулировать вопрос ниже. У меня есть общий метод в родительском классе для генерации шаблона. Для повторного использования я решил сохранить этот метод под родительским классом.
Внутри метода я использую несколько переменных. Поэтому я подумал, что лучше передать объект в качестве параметра методу 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 выше для созданияPattern(). Внутри этого метода мне нужно использовать переменные var1, values и многие другие переменные подклассов. Эти переменные имеют одинаковый тип и имеют одно и то же имя, но значения разные и зависят от подкласса. Как я могу ссылаться на эти переменные сейчас в generatePattern(), чтобы метод не менялся? Этого можно достичь, сделав переменные в качестве параметров для методов или операторами if/else, но мне нужно пройти несколько переменных, и это является большим неудобством.
Добавьте метод геттера и переопределите его в любом подклассе.
public int getVar() {
return var1;
}
getVar
иgetValues
какprotected abstract
методы вParent
.