Abstração
Na orientação a objetos, o conceito de abtração ou abstrair, significa esconder os detalhes de uma implementação, ou seja, quanto menos souberem sobre nossas classes, mais fácil de consumí-las será.
Desta forma, escondemos tudo que não é necessário o mundo externo ao nosso objeto saber, assim ficamos mais confortáveis com as mudanças, pois elas afetam somente o nosso objeto.
Uso: resolve o problema e questões que surgem no nível de design;
Foco: permite que voce se concentre no que o objeto faz em vez de como ele faz
implementação: pode usar abstração usando interfaces e classes abstratas
objetivo: foco principal no que deve ser feito