Question: what is difference between abstract class and normal class?
Answer: The only real difference is that a concrete class can be instantiated because it provides (or inherits) the implementation for all of its methods. An abstract class cannot be instantiated because at least one method has not been implemented. Abstract classes are meant to be extended.