An abstract class can contain both abstract methods (without implementation) and concrete methods (with implementation). The presence of at least one abstract method requires the class itself to be declared abstract, but it does not force all other methods to be abstract.