Method Inheritance
Suppose public class ChildClass extends ParentClass.
By default, each method of ParentClass is inherited by ChildClass.
An abstract method in ParentClass is one for which no implementation is provided, and that must be overridden by a method of the same name in ChildClass in order to be used.
If ParentClass contains any abstract methods, it must be declared an abstract class, and it cannot be directly instantiated.
If ChildClass overrides a method m(args) of ParentClass, the ParentClass version is still accessible within ChildClass using super.m(args)
A method qualified as final cannot be overridden.