Orientação a Objetos - Abstração

Nesta aula iremos aprender como utilizar classes abstratas, qual a diferença entre uma classe normal, uma classe abstrata e uma interface.

assinaturaAssine nossa Comunidade

POO - Abstração

Classes Abstratas são classes incompletas, na qual estarão definidos atributos comuns e métodos para as classes que irão herdá-las. Abaixo seguem as características de Classes Abstratas:

  1. Não podem ser instanciadas;
  2. A classe que herdar de uma classe abstrata, será obrigada a implementar os métodos abstratos que utilizam a palavra abstract;
  3. Não precisa de uma classe Base, pois possuem implementações e métodos que precisam ser sobrescritos.

Vamos criar uma classe abstrasta chamada Animal e criar o método abstrato Latir()

      
        
        namespace console_app  
        {
          public abstract class Animal
          {
            public string coleira;
            public string pelo;
            public string olhos;

            public abstract void Latir()
            {

            }

            public string Correr()
            {
              return "O animal está correndo";
            }
            
          }            
        }
      
    

Vamos criar a classe Cachorro que herda da classe Animal. Note que automaticamente o sistema mostra uma mensagem de erro que devemos implementar o método abstrato Latir(). Então será implementado o método Latir() com a palavra override.

      
        public class Cachorro : Animal
        {
      
          public string coleira;
          public string pelo;
          public string olhos;
      
          //implementação do método abstrato Latir()
          public override void Latir()
          {
            Console.WriteLine("Au eu sou um cachorrinho");
          }
      
          public string Correr()
          {
            return "O animal está correndo";
          }
          
        }            
      
    

No programa principal (main), ao criar uma nova instancia da classe Animal, o sistema mostra um erro onde não podemos criar instancia de classe abstrata ou Interface.

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var a = new Animal(); //erro ao tentar instanciar uma classe abstrata.
            }
          }
        }
       
    

No programa principal (main), ao criar uma nova instancia da classe Cachorro (que implementou a classe Animal), teremos disponíveis metodos e atributos.

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro(); 
              c.Latir();
            }
          }
        }
       
    

Uma observação a ser feita é que não podemos criar métodos abstratos em classes que não são abstratas.

}

Orientação a Objetos - Abstração

Nesta aula iremos aprender como utilizar classes abstratas, qual a diferença entre uma classe normal, uma classe abstrata e uma interface.

Próximas Aulas:
assinaturaAssine nossa Comunidade

POO - Abstração

Classes Abstratas são classes incompletas, na qual estarão definidos atributos comuns e métodos para as classes que irão herdá-las. Abaixo seguem as características de Classes Abstratas:

  1. Não podem ser instanciadas;
  2. A classe que herdar de uma classe abstrata, será obrigada a implementar os métodos abstratos que utilizam a palavra abstract;
  3. Não precisa de uma classe Base, pois possuem implementações e métodos que precisam ser sobrescritos.

Vamos criar uma classe abstrasta chamada Animal e criar o método abstrato Latir()

      
        
        namespace console_app  
        {
          public abstract class Animal
          {
            public string coleira;
            public string pelo;
            public string olhos;

            public abstract void Latir()
            {

            }

            public string Correr()
            {
              return "O animal está correndo";
            }
            
          }            
        }
      
    

Vamos criar a classe Cachorro que herda da classe Animal. Note que automaticamente o sistema mostra uma mensagem de erro que devemos implementar o método abstrato Latir(). Então será implementado o método Latir() com a palavra override.

      
        public class Cachorro : Animal
        {
      
          public string coleira;
          public string pelo;
          public string olhos;
      
          //implementação do método abstrato Latir()
          public override void Latir()
          {
            Console.WriteLine("Au eu sou um cachorrinho");
          }
      
          public string Correr()
          {
            return "O animal está correndo";
          }
          
        }            
      
    

No programa principal (main), ao criar uma nova instancia da classe Animal, o sistema mostra um erro onde não podemos criar instancia de classe abstrata ou Interface.

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var a = new Animal(); //erro ao tentar instanciar uma classe abstrata.
            }
          }
        }
       
    

No programa principal (main), ao criar uma nova instancia da classe Cachorro (que implementou a classe Animal), teremos disponíveis metodos e atributos.

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro(); 
              c.Latir();
            }
          }
        }
       
    

Uma observação a ser feita é que não podemos criar métodos abstratos em classes que não são abstratas.

}