Classe abstrata
Uma classe que não pode ser instanciada diretamente — só herdada. Define uma implementação parcial com métodos que as subclasses são obrigadas a implementar.
Diferente de uma interface: uma classe abstrata pode ter campos e implementação parcial; uma interface só tem assinaturas de método. Em Java: abstract class + abstract method; em C++: funções virtuais puras = 0; em Python: ABC + @abstractmethod. O Rust não tem herança alguma — usa traits em vez disso.