我正在开发相互继承的不同对象。
有一次我注意到超级方法的代码仍然由继承的方法执行。
从下面列出的子方法可以看出,我注释了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
的印刷品。
有没有办法阻止superMethod运行并使subMethod只执行?
因为到目前为止,我可以看到两个打印输出。
我希望这是我在OOP上的缺点。你知道吗
PS:我正在使用Jython2.7,你可以从标签上看到。你知道吗
必须有另一种解释,例如,如果涉及更多的类,并且有另一个类继承自
superClass
,但不重写superMethod
。你知道吗以下代码(我使用的是Python3)表明一切都应该正常工作:
输出:
相关问题 更多 >
编程相关推荐