Did you ever wonder;
“Why the heck do I HAVE to call super?!? If this is something required always, why don’t they just do it for me!”
Here’s the answer to that questions;
Basically, super() is something that must be called if you’re overriding something that MUST be called, which can often be rather complicated code. Now, the reason they don’t just do it for you and call it before your function is mostly so that you have control!
To be more specific, you cannot control IF you call super(), however, you can control WHEN! So, let’s say you have some specific code that needs to happen BEFORE super() gets called, you now have the freedom to call super() only after running your code.
So, the short answer to “why do I have to call super()” is; So that you can control when it’s called and do things before, or after super() gets ran.
Source: http://goo.gl/jDrcyP