Tutorial de classe abstrata C# com exemplo: O que é abstração?

O que é classe abstrata em C#?

Classe Abstrata nunca pode ser instanciado e é marcado pela palavra-chave abstract. Uma classe abstrata contém zero ou mais métodos abstratos. A classe abstrata atua como uma classe base e foi projetada para ser herdada por subclasses que implementam ou substituem seu método.

Vamos aprender uma classe abstrata em C# com o exemplo abaixo. Abaixo está a definição de uma classe chamada 'Animal'. Quando a classe ‘Animal’ é definida, não se sabe nada sobre o animal, seja ele um cachorro ou um gato. O método chamado description é apenas um método genérico definido para a classe.

Classe abstrata em C#

Agora que se sabe exatamente o que Animal será, criamos outra classe que herda a classe base. Se soubermos que o animal é na verdade um Cachorro, criamos a classe Cachorro que herda a classe base principal. A principal diferença aqui é que a classe Dog não pode alterar a definição do Descriptmétodo iônico da classe Animal. Ele tem que definir seu próprio método abstrato C# chamado Dog-Descriptíon. Este é o conceito básico das classes abstratas C#.

Classe abstrata em C#

Crie uma classe abstrata em C#

Vamos ver uma classe abstrata em C# com exemplos em tempo real de como podemos alterar nosso código para incluir uma classe abstrata C#. Observe que não executaremos o código, porque não há nada que possa ser executado usando uma classe de abstração C#.

Passo 1) Como primeiro passo, vamos criar uma classe abstrata. A classe se chamará Tutorial e terá apenas um método. Todo o código precisa ser escrito no arquivo Program.cs.

Crie uma classe abstrata em C#

Explicação do código: -

  1. Primeiro definimos a classe abstrata. Observe o uso da palavra-chave abstrata. Isso é usado para denotar que a classe é uma classe abstrata.
  2. A seguir, estamos definindo nosso método que não faz nada. O método deve ter a palavra-chave chamada virtual. Isso significa que o método não pode ser alterado pela classe filha. Este é um requisito básico para qualquer classe abstrata.

Passo 2) Agora vamos adicionar nossa classe filha. Este código é adicionado ao arquivo Program.cs.

Crie uma classe abstrata em C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 abstract class Tutorial
 {
  public virtual void Set() 
  {
      
  }
 }
  class Guru99Tutorial:Tutorial
  {
   protected int TutorialID; 
   protected string TutorialName;
   
   public void SetTutorial(int pID,string pName) 
   {
    TutorialID=pID;
    TutorialName=pName;
   }
   
   public String GetTutorial()
   {
    return TutorialName;
   }
  
  static void Main(string[] args) 
  {
   Guru99Tutorial pTutor=new Guru99Tutorial();
   
   pTutor.SetTutorial(1,".Net");
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Não há nada de excepcional neste código. Acabamos de definir uma classe chamada 'Guru99Tutorial' que herda a classe abstrata Tutorial. Em seguida, definimos os mesmos métodos que usamos antes.

Nota:
Aqui não podemos alterar a definição do método Set que foi definido na classe Tutorial. Na classe Tutorial, definimos um método chamado 'Set' (public virtual void Set()). Como o método fazia parte da classe abstrata C#, não temos permissão para definir o método Set novamente na classe Guru99Tutorial.

Resumo

Uma classe abstrata em Dó sustenido é um projeto para outras classes, marcado com o abstract palavra-chave. Ela não pode ser instanciada diretamente e pode incluir métodos abstratos que classes derivadas devem implementar. Classes abstratas impõem uma estrutura consistente entre subclasses enquanto permitem funcionalidades específicas. Esse conceito é comumente usado para definir comportamentos básicos e garantir flexibilidade de código por meio de herança.