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 #