Como usar a herança em C#

Como usar a herança em C#
Ao escrever código em uma linguagem de programação orientada a objetos, podemos encontrar situações em que precisamos reutilizar o código existente em uma nova classe ou adicionar funcionalidade adicional a uma classe existente. Nesses casos, a herança é útil. A herança na programação orientada a objetos permite que as classes herdem as propriedades e o comportamento de outra classe. Este artigo cobre o uso da herança em C# e seus diferentes tipos.

Índice

O que é herança em c#

Como funciona a herança em C#

Tipos de herança em c#

  • Herança única
  • Herança de vários níveis
  • Herança hierárquica
  • Herança múltipla (não suportada em C#)

Conclusão

O que é herança em c#

Em C# usando a herança, uma classe pode levar ou herdar as propriedades e métodos de outra classe. Em outras palavras, permite a criação de uma nova classe baseada em uma classe existente, conhecida como classe base ou super classe. Uma aula formada depois de tomar as propriedades de uma classe base é chamada uma classe derivada ou subclasse.

Essa classe derivada em C# não apenas leva propriedades da classe base, mas também pode adicionar seus próprios recursos exclusivos.

Como funciona a herança em C#

Em C#, a herança é alcançada através do uso do cólon (:) símbolo. O nome da classe base é definido após o cólon e é especificado pela classe derivada.

A seguir, é apresentada a sintaxe para criar uma classe derivada que leva as propriedades da classe base:

Classe DerivedClass: Baseclass

// Membros de classe derivados

Aqui neste código, Classe derivada é o nome da classe derivada e BaseClass é o nome da classe base. O : O símbolo indica que o DerivedClass está herdando de Baseclass. Os membros da DerivedClass podem acessar os membros do Baseclass, desde que não sejam privados.

Tipos de herança em c#

C# suporta quatro tipos de herança: herança única, multinível, hierárquica e múltipla. Vamos olhar para cada tipo.

Herança única

A herança única é o tipo mais comum de herança, onde uma classe derivada leva ou herda as propriedades de apenas uma única classe base.

Por exemplo, O código dado explica a hierarquia de classes e demonstra conceitos de herança.

usando o sistema;
usando o sistema;
carro de classe

Public Void Start ()

Console.WriteLine ("carro começou");


Classe Tesla: Car

Acelero de vazio público ()

Console.WriteLine ("Tesla acelerando");


programa de classe

estático void main (string [] args)

Tesla mytesla = new tesla ();
mytesla.Começar(); // Saída: o carro iniciado
mytesla.Acelerar(); // Saída: Tesla acelerando

No código acima, o Classe de carro é a classe base e tem um método chamado Começar(), que simplesmente imprime a mensagem O carro começou para o console.

O Classe Tesla é derivado da aula de carros e leva todas as propriedades da aula de carros. A classe Tesla adiciona um método chamado Acelerar(), que imprime a mensagem Tesla acelerando para o console.

O Principal() Função define uma instância da classe Tesla chamada mytesla e chama seus métodos iniciantes () e acelerar ().

Herança de vários níveis

A herança de vários níveis é onde uma classe derivada herda de outra classe derivada, que por sua vez herda de uma classe base.

Por exemplo, O código C# a seguir demonstra herança e método substituindo em uma hierarquia de classe.

usando o sistema;
animal de classe

public void Eat ()

Console.WriteLine ("Animal Eating");


Mamífero de classe: animal

public void run ()

Console.WriteLine ("Mammal Running");


Cão de classe: mamífero

Casca Void Public ()

Console.WriteLine ("Dog Barking");


programa de classe

estático void main (string [] args)

Cachorro mydog = novo cachorro ();
meu cachorro.Comer(); // Saída: alimentação de animais
meu cachorro.Correr(); // saída: corrida de mamíferos
meu cachorro.Latido(); // Saída: latido para cães

Aqui Cachorro é uma classe derivada que herda Mamífero, que por sua vez herda de Animal. A classe de cães tem acesso a todas as propriedades, métodos e comportamento de mamíferos e animais e também pode definir seu próprio método único Latido().

O Classe de animais é a classe base e tem um método chamado Comer(), que simplesmente imprime a mensagem animal comendo no console.

O Classe de mamíferos é derivado da classe de animais e adiciona um método chamado Correr(), que imprime a mensagem mamífera em execução para o console.

O Aula de cães é derivado da classe de mamíferos e adiciona um método chamado Latido(), que imprime a mensagem cachorro latindo para o console.

O método principal () cria uma instância da classe de cães chamada meu cachorro e chama os métodos Eat (), Run () e Bark ().

Observe que os métodos Eat () e Run () não são definidos na aula de cães, mas são herdados de suas classes pais Animal e Mamífero, respectivamente. O Latido() o método é definido apenas na aula de cães.

Herança hierárquica

Na herança hierárquica, diferentes números de classes derivadas são herdadas de apenas uma classe base. Por exemplo:

usando o sistema;
forma de classe

Draw Public Void ()

Console.WriteLine ("Shape de desenho");


Círculo de classe: forma

Public Void Fill ()

Console.WriteLine ("Círculo de enchimento");


quadrado de classe: forma

cor vazia pública ()

Console.WriteLine ("quadrado colorido");


programa de classe

estático void main (string [] args)

Círculo mycircle = new círculo ();
mycircle.Empate(); // Saída: forma de desenho
mycircle.Preencher(); // saída: círculo de enchimento
Quadrado mysquare = new Square ();
mysquare.Empate(); // Saída: forma de desenho
mysquare.Cor(); // Saída: quadrado para colorir

No código acima, ambos Círculo e Quadrado são classes derivadas que herdam de Forma. Eles têm acesso ao método draw () definido em forma e também podem definir seus próprios métodos exclusivos preencher () e color ().

Aqui criamos um objeto da classe Circle nomeado mycircle e um objeto do Quadrado classe chamada mysquare. Nós então chamamos o Empate() método, que é herdado da classe de forma, em ambos os objetos.

Em seguida, chamamos o Preencher() método no mycircle, que é específico para a classe do círculo, e o Cor() Método no Mysquare, que é específico para a classe quadrada.

A saída será impressa no console como abaixo:

Herança múltipla

A herança múltipla é onde uma classe derivada herda de várias classes base. No entanto, C# não suporta herança múltipla. Para obter funcionalidade semelhante, C# usa interfaces.

Conclusão

A herança em C# permite que as classes herdem comportamento e funcionalidade das classes base. Usando a herança, podemos reutilizar o código e criar um fluxo hierárquico dentro do programa. Ao entender os diferentes tipos de herança, pode -se escrever um código mais eficiente e organizado, mais fácil de manter e estender.