Herança

Definição – o que significa herança?

Herança, em C #, é a capacidade de criar uma classe que herda atributos e comportamentos de uma classe existente. A classe recém-criada é a classe derivada (ou filha) e a classe existente é a classe base (ou pai).

Herança é um dos principais recursos da programação orientada a objetos. Os benefícios da herança são parte do motivo pelo qual a programação estrutural pode ser substituída pela programação orientada a objetos.

A herança em C # é projetada em nível de implementação e interface. A herança de implementação envolve o código de uma classe que é reutilizado em outra, enquanto a herança de interface implica na herança de apenas as assinaturas de funções de um tipo para outro.

A herança também é conhecida como generalização.

Definirtec explica herança

C # não oferece suporte a herança múltipla, o que significa que uma classe pode derivar de apenas uma classe base, embora uma classe possa ser derivada de uma ou mais interfaces. Devido à natureza transitiva da herança, uma classe derivada herda todos os membros de seus ancestrais.

Por exemplo, as classes Carro e Ônibus podem ser derivadas de uma classe base, Veículo, por meio de herança porque Carro e Ônibus são tipos de Veículo.

Os principais recursos de herança incluem:

  • Todos os membros da classe base, exceto aqueles com acessibilidade privada, podem ser acessados ​​na classe derivada.
  • Todos os membros da classe base são herdados da classe base, exceto construtores e destruidores.
  • Ao contrário do C ++, os métodos virtuais em uma classe derivada precisam usar o modificador “substituir” para substituir um membro herdado.
  • Para ocultar um membro herdado com o mesmo nome e assinatura na classe derivada, o “novo” modificador pode ser usado.
  • Para evitar a instanciação direta de uma classe, o modificador “abstrato” pode ser usado.
  • Para evitar derivação posterior de uma classe base, ela pode ser declarada usando o modificador “selado”.

A herança oferece os seguintes benefícios:

  • Permite a construção de uma hierarquia de classes relacionadas que podem reutilizar, estender e alterar os comportamentos definidos nas classes existentes.
  • Ele permite a reutilização do código, reduzindo o tempo e esforço na codificação e teste.
  • Ajuda a melhorar a modularidade e o desempenho, dividindo grandes partes de código em partes menores e mais gerenciáveis.
  • Ele constitui o meio para atingir o polimorfismo, o que permite que um objeto represente mais de um tipo.

Esta definição foi escrita no contexto de C #