abstract class vs non abstract class
non-abstract class:
cannot: abstract methods
can: constructor, instance method, static method, instance block,s
tatic block, instance variable, static variable
abstract class:
can: constructor, instance method, static method,
instance block, static block, instance variable, static variable...
abstract method: method without implementation,
meant to be override (cannot create object, cannot be final,static,private)