Я пытаюсь создать общий метод, но для этого требуются данные из подкласса. Есть ли способ сделать это, или есть лучшая реализация?Как получить доступ к переменной подкласса из универсального суперкласса
Пример моей ситуации:
public class Super {
public static Object method() {
return doSomethingWith(specificToSubClassValue);
}
}
public class Sub1 extends Super {
public static String specificToSubClassValue = "123";
}
public class Sub2 extends Super {
public static String specificToSubClassValue = "456";
}
я, очевидно, не может это сделать. Какой подход лучше?
Один из вариантов, о котором я могу думать, состоит в том, чтобы переопределить метод #method в каждом подклассе, но в каждом экземпляре он будет одним и тем же кодом, поэтому я хотел бы бросить его в родительский класс (и он не будет действительно переопределено, поскольку оно является статичным), но я не уверен, как с ним обращаться, поскольку он зависит от значения подкласса.
Статические методы не вызывается полиморфно. Их нельзя переопределить. –
Я знаю, что упоминал это в скобках. Часть причины этого вопроса :) Я искал способ обойти это, но не могу думать о рабочем решении. Я думаю, что моя реализация (очевидно) бедна и хотела знать о хорошем пути решения этой проблемы или о правильной реализации, чтобы избежать этой проблемы. – rys