When one of the following situations arises, a class should be declared as an abstract: Overriding some of the abstract methods, but not all of them, when a class inherits from an abstract class When at least one method in the class is abstract