Super Simple Songs Five Little Pumpkins

super() is a special use of the super keyword where you call a parameterless parent constructor. In general, the super keyword can be used to call overridden methods, access hidden fields or invoke a superclass's constructor.

super simple songs five little pumpkins 1

The benefits of super() in single-inheritance are minimal -- mostly, you don't have to hard-code the name of the base class into every method that uses its parent methods. However, it's almost impossible to use multiple-inheritance without super(). This includes common idioms like mixins, interfaces, abstract classes, etc. This extends to code that later extends yours. If somebody later wanted ...

Just a heads up... with Python 2.7, and I believe ever since super() was introduced in version 2.2, you can only call super() if one of the parents inherit from a class that eventually inherits object (new-style classes).

super simple songs five little pumpkins 3

In fact, multiple inheritance is the only case where super() is of any use. I would not recommend using it with classes using linear inheritance, where it's just useless overhead.

super simple songs five little pumpkins 4

Thirdly, when you call super() you do not need to specify what the super is, as that is inherent in the class definition for Child. Below is a fixed version of your code which should perform as you expect.

No Java super() invoca o constructor, sem argumentos, da classe derivada (pai). No teu exemplo, e uma vez que UsuarioController extende a classe HttpServlet irá invocar o construtor default da classe HttpServlet. A diretiva super, sem parênteses, permite ainda invocar métodos da classe que foi derivada através da seguinte syntax. super.metodo(); Isto é útil nos casos em que faças ...

As for chaining super::super, as I mentionned in the question, I have still to find an interesting use to that. For now, I only see it as a hack, but it was worth mentioning, if only for the differences with Java (where you can't chain "super").