Constructors must never have a return type
A method may have the same name as the class (although it's bad practice), but this is not a constructor.
If no constructor is declared, the compiler will create a default zero argument constructor
All constructors must either call another constructor via this(argsā¦..) or a constructor for the class that it extends, bubbling up until the zero argument constructor is called on Object. If no call is specified super() is called implicitly
Constructors can not be overridden by subclasses. A constructor with one or more objects will not call the super method with the same signature unless called explicitly, it will call super() unless another .
A constructor has to either call a super constructor (implicitly or expilitly) or a this as the first thing it does. It is not allowed to do work then call another constructor.
Because of this constructor chaining bubbles to the top (Object's empty constructor) then returns back down the inheritance tree, doing the work from top to bottom.