An abstract class is a special type of class that cannot be instantiated. An abstract class is designed to be inherited by subclasses that either implement or override its methods. ... You can have functionality in your abstract class—the methods in an abstract class can be both abstract and concrete.