An abstract class is a superclass
An abstract class can be instantiated
Abstract methods are not implemented.
A concrete class can contain abstract methods.
An abstract class is declared with keyword abstract.
A subclass will always be concrete even it if doesn't implement all of the abstract methods of its superclass.
An abstract class can have instance variables.
An abstract class can have no abstract methods.
An abstract class cannot have concrete methods.