Я разрабатываю различные объекты, которые наследуются друг от друга.
В какой-то момент я заметил, что код супер-метода все еще выполняется унаследованным методом.
Как видно из приведенного ниже под-метода, я прокомментировал super()
, чтобы предотвратить выполнение кода суперкласса.
Это суперкласс:
class superClass(superClassOfSuperClass):
def __init__(self, data):
#[...]
#unique call of the superMethod
self.component.addActionListener(self.superMethod)
#[...]
def superMethod(self, param):
print "I'm executed, but I don't have to be executed!"
Это под-метод:
class subClass(superClass):
def __init__(self, data, newData):
superClass.__init__(self, data)
self.newData = newData
#[...]
def superMethod(self, param):
#super(superClass, self).superMethod(None)
print 'only I have to be printed!!!'
Код работает. Но я не хочу видеть печать superMethod
.
Есть ли способ предотвратить запуск суперметода и заставить его выполнять только субметод? Потому что до сих пор я вижу оба вывода печати.
Я надеюсь, что это мой недостаток в ООП.
PS: я работаю с Jython 2.7, как вы можете видеть из тегов.