O que é classe abstrata em C#? | Definição, Propriedades e Exemplos

O termo abstração na programação refere-se à ocultação de informações desnecessárias, embora altamente importantes, e tornar visível para o usuário apenas algumas informações importantes ou necessárias. Isso é possível por meio do uso de classes abstratas.

A classe abstrata em C# é essencialmente uma classe que não permite a criação de objetos. 'Abstract' aqui é uma palavra-chave ou um modificador que faz com que uma classe ou método em particular seja abstrato ou restrito. Uma classe abstrata só pode ser acessada por herança de uma classe diferente.

Propriedades e componentes da classe abstrata em C#

Existem certos fatores que precisam estar presentes para que uma classe abstrata seja iniciada ou acessada. Eles foram listados a seguir.

  1. Uma classe abstrata é usada para criar uma classe base que pode ser comumente acessada por várias classes derivadas. Para usar ou implementar uma classe abstrata, os programadores devem primeiro criar uma classe derivada.
  2. A classe abstrata, portanto, deve ser herdada por subclasses, que podem até substituir a função.
  3. Cada classe abstrata requer pelo menos um método abstrato.

Exemplo de uma classe abstrata em C#

Como o mecanismo é complicado e compreensível apenas para aqueles que estão familiarizados com a linguagem de programação, é melhor começar com um exemplo muito simples que ajudará a explicar o conceito.

Suponha que exista uma classe 'Árvore', com um método projetado conhecido como 'tipo'. Nada mais é definido e nenhuma outra informação particular é fornecida - não se sabe o tipo de árvore, ou mesmo os tipos que são possíveis.

Se um exemplo específico de uma árvore estiver disponível, uma classe separada será criada por meio da herança da classe base, Árvore. A ideia é que a nova classe, digamos Pine ou Oak, não pode realmente modificar a construção ou definição da classe base, ou seja, Tree. Ele deve criar sua própria classe, derivada da classe Tree, e definir outro método herdado da base.

Vantagens da classe abstrata em C#

  1. Enquanto as subclasses podem escolher implementar ou substituir uma classe abstrata, certas modificações podem ser feitas que exigem que uma determinada função seja absolutamente implementada.
  2. Existe, portanto, um grande grau de flexibilidade ao projetar uma classe abstrata, que diz respeito a quais métodos devem ser implementados imperativamente.
  3. O programador pode escolher quantos métodos abstratos deseja em uma classe abstrata. Também é possível escrever o código sem incluir métodos abstratos.
  4. Uma classe abstrata deve ser definida apenas uma vez e pode ser acessada ou derivada quantas vezes forem necessárias daqui em diante.
  5. Uma classe abstrata é muito útil quando há um conjunto de classes que possuem um grau de semelhança, mas diferem em sua implementação da classe abstrata.

Desvantagens da classe abstrata em C#

  1. Uma classe abstrata pode ser adicionada à hierarquia de classes apenas se não houver classes abstratas existentes.
  2. Objetos de qualquer classe abstrata só podem ser referenciados, nunca criados.
  3. Apesar do fato de que classes abstratas não podem ser instanciadas, ela não permite o uso de variáveis ou métodos estáticos.

Referências

  1. https://books.google.co.in/books?hl=en&lr=&id=UbJa11wLcqYC&oi=fnd&pg=PA125&dq=Abstract+Class+in+C%23&ots=y9lmboLlHj&sig=kk5oYAJSHpmo-FyHphcAlkUh4cc&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
  2. https://books.google.co.in/books?hl=en&lr=&id=-w9ftEtwPGwC&oi=fnd&pg=PP8&dq=Abstract+Class+in+C%23&ots=XXCx6-5nlm&sig=CYfs0myaTnm1anSz4QUGcZ65uS4&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
x
2D vs 3D