Рассмотрим следующий код в Python:Наследование в Java
class A(object):
CLASS_ATTRIBUTE = 42
def f(self):
return "CLASS_ATTRIBUTE: %d" % self.CLASS_ATTRIBUTE
class B(A):
CLASS_ATTRIBUTE = 44
Теперь A().f()
и B().f()
возвращение "CLASS_ATTRIBUTE: 42"
и "CLASS_ATTRIBUTE: 44"
соответственно.
Как добиться аналогичного эффекта в Java? Я хочу, чтобы поле CLASS_ATTRIBUTE было инициализировано статически и переопределено в унаследованном классе, но метод f
должен быть определен только в базовом классе.
@ user480884, Ничего себе, вы не должны были статически ставить в своем вопросе. – aioobe
Это самое близкое к моим ожиданиям. Если бы я мог избавиться от этого конструктора в подклассе ... По крайней мере для базового класса это поле инициализируется статически (по крайней мере, это выглядит так - я не знаком с Java, если честно). – user480884
А, я вижу ... – aioobe