AOL: Hate Bitter Foods? You Might Be a Supertaster (and Not a Picky Eater), According to a Nutritionist Here's what it means to be a supertaster—and how to make the healthy foods you hate taste better. Having food preferences is perfectly natural.

Understanding the Context

Some prefer mild flavors to spicy ones; some have a ... Hate Bitter Foods? You Might Be a Supertaster (and Not a Picky Eater), According to a Nutritionist 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.

Key Insights

super() lets you avoid referring to the base class explicitly, which can be nice. But the main advantage comes with multiple inheritance, where all sorts of fun stuff can happen. The one without super hard-codes its parent's method - thus is has restricted the behavior of its method, and subclasses cannot inject functionality in the call chain. The one with super has greater flexibility. The call chain for the methods can be intercepted and functionality injected.

Final Thoughts

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. I'm currently learning about class inheritance in my Java course and I don't understand when to use the super() call? Edit: I found this example of code where super.variable is used: class A { ...