Diferença entre classe abstrata e classe concreta

Diferença entre classe abstrata e classe concreta
Diferença entre classe abstrata e classe concreta

Vídeo: Diferença entre classe abstrata e classe concreta

Vídeo: Diferença entre classe abstrata e classe concreta
Vídeo: Proxy 2024, Novembro
Anonim

Classe Abstrata vs Classe Concreta

A maioria das linguagens de programação orientadas a objetos modernas e populares, como Java e C, são baseadas em classes. Eles alcançam os conceitos de orientação a objetos como encapsulamento, herança e polimorfismo através do uso de classes. As classes são uma representação abstrata de objetos do mundo real. As classes podem ser concretas ou abstratas dependendo do nível de implementação de suas funcionalidades de método. Uma classe concreta implementa completamente todos os seus métodos. Uma classe abstrata pode ser considerada como uma versão limitada de uma classe regular (concreta), onde pode conter métodos parcialmente implementados. Normalmente, classes concretas são chamadas de (apenas) classes.

O que é Classe Concreta?

A classe padrão é uma classe concreta. A palavra-chave class é usada para definir classes (por exemplo, em Java). E geralmente eles são simplesmente chamados de classes (sem o adjetivo concreto). As classes concretas descrevem a representação conceitual de objetos do mundo real. As classes têm propriedades chamadas atributos. Os atributos são implementados como variáveis globais e de instância. Os métodos nas classes representam ou definem o comportamento dessas classes. Métodos e atributos de classes são chamados de membros da classe. Normalmente, o encapsulamento é obtido tornando os atributos privados, enquanto cria métodos públicos que podem ser usados para acessar esses atributos. Um objeto é a instância de uma classe. A herança permite que o usuário estenda classes (chamadas subclasses) de outras classes (chamadas superclasses). O polimorfismo permite ao programador substituir um objeto de uma classe no lugar de um objeto de sua superclasse. Normalmente, os substantivos encontrados na definição do problema tornam-se diretamente classes no programa. E da mesma forma, os verbos tornam-se métodos. Public, private e protected são os modificadores de acesso típicos usados para classes.

O que é classe abstrata?

Classes abstratas são declaradas usando a palavra-chave Abstract (por exemplo, em Java,). Normalmente, classes abstratas, também conhecidas como classes básicas abstratas (ABC), não podem ser instanciadas (uma instância dessa classe não pode ser criada). Portanto, classes abstratas só são significativas se a linguagem de programação suportar herança (capacidade de criar subclasses a partir da extensão de uma classe). Classes abstratas geralmente representam um conceito abstrato ou entidade com implementação parcial ou nenhuma. Portanto, as classes abstratas agem como classes pai das quais as classes filhas são derivadas para que a classe filha compartilhe os recursos incompletos da classe pai e a funcionalidade pode ser adicionada para completá-los.

Classes abstratas podem conter métodos abstratos. As subclasses que estendem uma classe abstrata podem implementar esses métodos abstratos (herdados). Se a classe filha implementar todos esses métodos abstratos, ela se tornará uma classe concreta. Mas se isso não acontecer, a classe filha também se torna uma classe abstrata. O que tudo isso significa é que, quando o programador nomeia uma classe como Abstract, ela está dizendo que a classe estará incompleta e terá elementos que precisam ser completados pelas subclasses herdadas. Esta é uma boa maneira de criar um contrato entre dois programadores, o que simplifica as tarefas no desenvolvimento de software. O programador, que escreve código para herdar, precisa seguir exatamente as definições do método (mas é claro que pode ter sua própria implementação).

Qual é a diferença entre Classe Abstrata e Classe Concreta?

Classes abstratas geralmente têm implementação parcial ou nenhuma. Por outro lado, classes concretas sempre possuem implementação completa de seu comportamento. Ao contrário das classes concretas, as classes abstratas não podem ser instanciadas. Portanto, classes abstratas precisam ser estendidas para torná-las úteis. Classes abstratas podem conter métodos abstratos, mas classes concretas não podem. Quando uma classe abstrata é estendida, todos os métodos (abstratos e concretos) são herdados. A classe herdada pode implementar qualquer um ou todos os métodos. Se todos os métodos abstratos não forem implementados, essa classe também se tornará uma classe abstrata.

Recomendado: