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.