Abstraction is a way for the programmer of a super class to require the programmer of a subclass to define a method.
Abstraction should be used in a program when there isnt any way to define a good default method in the super class.
An abstract method is a method defined in a super class that must be redefined in a subclass that inherits the super class.
An abstract method cannot be called within a program.
A compiler error occurs if an abstract method is not redefined.
An instance of an abstract class cannot be declared in a program.
An abstract method cannot be called directly by a subclass.
A programmer of a subclass that inherits an abstract super class must redefine the abstract methods defined in the subclass, even if those methods are not called within the application.
A super class can contain a mixture of abstract methods and non-abstract methods.
Only abstract methods must be redefined in a subclass that inherits from the abstract super class.