O que é abstração em OOP?
Abstração é o conceito de programação orientada a objetos que "mostra" apenas os atributos essenciais e "oculta" informações desnecessárias. O principal objetivo da abstração é ocultar os detalhes desnecessários dos usuários. Abstração é selecionar dados de um conjunto maior para mostrar apenas detalhes relevantes do objeto para o usuário. Ajuda a reduzir a complexidade e os esforços de programação. É um dos conceitos mais importantes de OOPs.
Clique aqui se o vídeo não estiver acessível
Vamos estudar abstração em OOPs com exemplo:
Suponha que você queira criar um aplicativo bancário e seja solicitado a coletar todas as informações sobre seu cliente. Há chances de você obter as seguintes informações sobre o cliente
Mas nem todas as informações acima são necessárias para criar um aplicativo bancário.
Portanto, você precisa selecionar apenas as informações úteis para seu aplicativo bancário desse pool. Dados como nome, endereço, informações fiscais, etc. fazem sentido para um aplicativo bancário que é um exemplo de abstração em OOPs
Uma vez que buscamos / removemos / selecionamos as informações do cliente de um pool maior, o processo é referido como Abstração em OOPs.
No entanto, as mesmas informações, uma vez extraídas, podem ser usadas para uma ampla gama de aplicações. Por exemplo, você pode usar os mesmos dados para o aplicativo de hospital, aplicativo de portal de empregos, banco de dados do governo, etc. com pouca ou nenhuma modificação. Portanto, eles se tornam seus dados principais. Esta é uma vantagem da abstração em OOPs.
Diferença entre abstração e encapsulamento
Abstração | Encapsulamento |
A abstração na Programação Orientada a Objetos resolve os problemas no nível de design. | O encapsulamento resolve seu nível de implementação. |
A abstração na programação trata de ocultar detalhes indesejados enquanto mostra a maioria das informações essenciais. | Encapsulamento significa vincular o código e os dados em uma única unidade. |
A abstração de dados em Java permite focar no que o objeto de informação deve conter | Encapsulamento significa ocultar os detalhes internos ou a mecânica de como um objeto faz algo por motivos de segurança. |
Diferença entre classe abstrata e interface
Classe Abstrata | Interface |
Uma classe abstrata pode ter métodos abstratos e não abstratos. | A interface pode ter apenas métodos abstratos. |
Ele não oferece suporte a várias heranças. | Ele oferece suporte a várias heranças. |
Ele pode fornecer a implementação da interface. | Ele não pode fornecer a implementação da classe abstrata. |
Uma classe abstrata pode ter métodos públicos abstratos e protegidos. | Uma interface pode ter apenas métodos abstratos públicos. |
Uma classe abstrata pode ter uma variável final final, estática ou estática com qualquer especificador de acesso. | A interface só pode ter uma variável final estática pública. |
O que é classe abstrata?
Classe abstrata é um tipo de classe em OOPs, que declara um ou mais métodos abstratos. Essas classes podem ter métodos abstratos, bem como métodos concretos. Uma classe normal não pode ter métodos abstratos. Uma classe abstrata é uma classe que contém pelo menos um método abstrato.
O que são métodos abstratos?
Método abstrato é um método que possui apenas a definição do método, mas não contém implementação. Um método sem corpo é conhecido como Método Abstrato. Deve ser declarado em uma classe abstrata. O método abstrato nunca será final porque a classe abstrata deve implementar todos os métodos abstratos.
Vantagens da abstração
- O principal benefício de usar uma Abstração na Programação é que ela permite agrupar várias classes relacionadas como irmãs.
- Abstração em Programação Orientada a Objetos ajuda a reduzir a complexidade do processo de design e implementação de software.
Quando usar métodos abstratos e classes abstratas?
Métodos abstratos são geralmente declarados onde duas ou mais subclasses também estão fazendo a mesma coisa de maneiras diferentes por meio de implementações diferentes. Ele também estende a mesma classe Abstract e oferece diferentes implementações dos métodos abstratos.
Classes abstratas ajudam a descrever tipos genéricos de comportamentos e hierarquia de classes de programação orientada a objetos. Ele também descreve as subclasses para oferecer detalhes de implementação da classe abstrata.
Resumo:
- Abstração em programação é o processo de selecionar conjuntos de dados importantes para um objeto em seu software e omitir os insignificantes.
- Depois de modelar seu objeto usando a abstração de dados em Java, o mesmo conjunto de dados pode ser usado em diferentes aplicativos.