Gostaria de entender melhor a função de uma classe abstrata. Eu entendi que importando a Abstract Base Class, e herdando esse comportamento para uma classe, essa pode se tornar abstrata, ou seja, não poderia instanciar um objeto através dela. Mas para que serve uma classe abstrata? Poderiam me mostrar algum exemplo?