Abstracção

Abstração é o processo de esconder do mundo exterior os detalhes de implementação de uma classe, módulo ou função. Usando abstração, o programador pode focar na funcionalidade do código em vez de nos detalhes de sua implementação.

A abstracção pode ser conseguida de várias maneiras, incluindo:
-Ocultando os detalhes de uma classe, módulo ou função dentro de um arquivo separado
-Usando modificadores de acesso (como 'privado') para restringir o acesso aos internos de uma classe
-Usando interfaces para especificar os contratos que uma classe deve implementar sem revelar seus detalhes de implementação O que é um exemplo de abstração? Abstração é o processo de esconder do mundo exterior os detalhes de uma implementação. Na engenharia de software, isso normalmente é feito criando uma interface que expõe apenas a funcionalidade que é necessária para o mundo externo, enquanto esconde os detalhes da implementação.

O que é abstração?

Uma abstração é uma técnica para esconder os detalhes de uma implementação em particular de um algoritmo ou estrutura de dados, a fim de focar nos aspectos mais gerais do projeto. Em outras palavras, é uma forma de simplificar a realidade complexa, ignorando certos detalhes. O objectivo da abstracção é tornar os sistemas complexos mais fáceis de compreender e trabalhar.

Existem dois tipos principais de abstracção:

1. tipos de dados abstratos (ADTs)

Um tipo de dados abstratos é um tipo de dados que é definido em termos das operações que podem ser realizadas sobre ele, sem referência a qualquer implementação específica. Por exemplo, o ADT "lista" pode ser definido como um tipo de dado que suporta as operações de criação de uma lista, adição de um elemento à lista, remoção de um elemento da lista, e assim por diante. O ADT não especifica como essas operações devem ser implementadas. Isso é deixado para a implementação específica.

2. Algorithmic Abstraction

A abstração algorítmica é uma técnica para esconder os detalhes de um algoritmo em particular, a fim de focar nos aspectos mais gerais do projeto. Por exemplo, o algoritmo para ordenar uma lista de números poderia ser abstraído escondendo os detalhes do algoritmo de ordenação específico que é utilizado. Isto permitiria ao designer focar no problema mais geral de como ordenar uma lista de números, sem ter que se preocupar com as especificidades de qualquer algoritmo de ordenação em particular.

Abstracção é

O que é abstracção na vida?

Abstração na vida refere-se à capacidade de identificar e entender as relações entre conceitos, idéias e objetos, sem ficar atolado nos detalhes. Em outras palavras, a abstração nos permite ver o "grande quadro" e entender como as coisas funcionam, sem se perder nos detalhes específicos.

Por exemplo, quando conduzimos um carro, não precisamos de saber como funciona o motor para passar do ponto A para o ponto B. Podemos simplesmente abstrair os detalhes do motor e focarmo-nos na tarefa que temos em mãos.

Em geral, a abstracção é uma ferramenta poderosa que nos permite simplificar situações complexas e focar no que é mais importante.

Qual é a diferença entre Polimorfismo e abstracção?

Abstração é o conceito de esconder os detalhes de implementação de um objeto ou sistema e expor apenas a funcionalidade para o mundo exterior. Isso geralmente é feito criando uma interface que define os métodos públicos que podem ser chamados sobre o objeto ou sistema.

Polimorfismo é a capacidade de um objeto ou sistema de assumir diferentes formas. Isto pode ser conseguido de duas maneiras: por herança (criando subclasses que herdam o comportamento da classe mãe) ou implementando interfaces (definindo um conjunto de métodos que devem ser implementados pelo objeto ou sistema).

Quais são os tipos de abstracção?

Abstração é um processo de esconder os detalhes da implementação e mostrar apenas a funcionalidade para os usuários. Existem dois tipos de abstração:

1. Abstração de Dados
2. Função Abstracção

Abstracção de Dados: Data Abstraction é o processo de ocultar os detalhes internos e mostrar somente a funcionalidade aos usuários. Por exemplo, em Programação Orientada a Objetos, as classes fornecem tipos de dados abstratos. O usuário pode utilizar o tipo de dados sem conhecer os detalhes de implementação.

Abstração de funções: A função Abstração é o processo de ocultar os detalhes de implementação e mostrar apenas a funcionalidade aos usuários. Por exemplo, em Programação Orientada a Objetos, os métodos fornecem funcionalidades abstratas. O usuário pode utilizar a funcionalidade sem conhecer os detalhes da implementação.