◐ Shell
clean mode source ↗

Calling super().Method() throws an exception if its not implemented by the base class

In mult-level heirarchies, this causes a stackoverflow exception because the control flow opts to calling the original method instead of the one defined at the super-super level.

For example:

class Class1 {
   public virtual void Method(){

   }
}
class Class2(Class1):
   # This does not implement Method
   pass
class Class3(class2):
   def Method(self):
       super().Method()

In this case, calling Class3.Method will cause a stackoverflow exception because it will call back to the virtual Method method instead of the concrete base class implementation.