Como usar herança em C#

Como Usar Heranca Em C



Ao escrever código em uma linguagem de programação orientada a objetos, podemos nos deparar com 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 aborda o uso de 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#



Conclusão



O que é herança em C#

Em C# usando herança, uma classe pode obter ou herdar as propriedades e métodos de outra classe. Em outras palavras, permite a criação de uma nova classe a partir de uma classe existente, conhecida como classe base ou superclasse. Uma classe formada após obter as propriedades de uma classe base é chamada uma classe derivada ou subclasse.





Essa classe derivada em C# não apenas obtém as 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 é obtida por meio do uso de dois pontos (:) símbolo. O nome da classe base é definido após os dois pontos e é especificado pela classe derivada.



A seguir está a sintaxe para criar uma classe derivada que obtém propriedades da classe base:

Classe DerivadaClasse : BaseClass

{

// membros da classe derivada

}

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

Tipos de Herança em C#

C# dá suporte a quatro tipos de herança: herança única, multinível, hierárquica e múltipla. Vejamos cada tipo.

Herança Única

A herança única é o tipo mais comum de herança, em que uma classe derivada obtém ou herda propriedades de apenas uma única classe base.

Por exemplo, o código fornecido explica a hierarquia de classes e demonstra os conceitos de herança.

usando o sistema ;

usando o sistema ;
carro de classe
{
público vazio Começar ( )
{
Console. WriteLine ( 'Carro ligado' ) ;
}
}
classe Tesla : Carro
{
público vazio Acelerar ( )
{
Console. WriteLine ( 'Tesla acelerando' ) ;
}
}
programa de classe
{
estático vazio Principal ( corda [ ] argumentos )
{
Tesla myTesla = novo Tesla ( ) ;
myTesla. Começar ( ) ; //Saída: Carro iniciado
myTesla. Acelerar ( ) ; // Output: 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 carro começou para o console.

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

O Principal() A função define uma instância da classe Tesla chamada myTesla e chama seus métodos Start() e Accelerate().

Herança Multinível

Herança multinível é 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 substituição de método em uma hierarquia de classes.

usando o sistema ;
classe Animal
{
público vazio Comer ( )
{
Console. WriteLine ( 'Comer animais' ) ;
}
}
classe Mamífero : Animal
{
público vazio Correr ( )
{
Console. WriteLine ( 'Mamífero correndo' ) ;
}
}
cão de classe : Mamífero
{
público vazio Latido ( )
{
Console. WriteLine ( 'Cachorro latindo' ) ;
}
}
programa de classe
{
estático vazio Principal ( corda [ ] argumentos )
{
Cachorro meuCão = cachorro novo ( ) ;
meu cachorro. Comer ( ) ; // Output: Animal comendo
meu cachorro. Correr ( ) ; // Output: Mammal running
meu cachorro. Latido ( ) ; //Saída: Cachorro latindo
}
}

Aqui Cachorro é uma classe derivada que herda de Mamífero , que por sua vez herda de Animal . A classe Dog tem acesso a todas as propriedades, métodos e comportamento de Mammal e Animal, e também pode definir seu próprio método exclusivo Latido() .

O classe animal é a classe base e tem um método chamado Comer() , que simplesmente imprime a mensagem Animal Eating no console.

O classe de mamífero é derivado da classe Animal e adiciona um método chamado Correr() , que imprime a mensagem Mammal running no console.

O aula de cachorro é derivado da classe Mammal e adiciona um método chamado Latido() , que imprime a mensagem Cachorro latindo no console.

O método Main() cria uma instância da classe Dog chamada meu cachorro e chama seus métodos Eat(), Run() e Bark().

Observe que os métodos Eat() e Run() não são definidos na classe Dog, mas são herdados de suas classes pai Animal e Mamífero , respectivamente. O Latido() O método só é definido na classe Dog.

  Texto
Descrição gerada automaticamente

Herança Hierárquica

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

usando o sistema ;
classe Forma
{
público vazio Empate ( )
{
Console. WriteLine ( 'Forma de desenho' ) ;
}
}
círculo de classe : Forma
{
público vazio Preencher ( )
{
Console. WriteLine ( 'Círculo de preenchimento' ) ;
}
}
classe quadrado : Forma
{
público vazio Cor ( )
{
Console. WriteLine ( 'Quadrado para colorir' ) ;
}
}
programa de classe
{
estático vazio Principal ( corda [ ] argumentos )
{
Círculo meuCírculo = novo círculo ( ) ;
myCircle. Empate ( ) ; // Saída: Forma do desenho
myCircle. Preencher ( ) ; // Saída: Círculo de preenchimento

Quadrado mySquare = novo quadrado ( ) ;
mySquare. Empate ( ) ; // Saída: Forma do desenho
mySquare. Cor ( ) ; // Saída: Quadrado de coloração
}
}

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 Shape e também podem definir seus próprios métodos exclusivos Fill() e Color().

Aqui criamos um objeto da classe Circle chamado meuCírculo e um objeto do Quadrado classe chamada meu quadrado . Chamamos então o Empate() método, que é herdado da classe Shape, em ambos os objetos.

A seguir, chamamos o Preencher() método em myCircle, que é específico para a classe Circle, e o método Cor() método em mySquare, que é específico para a classe square.

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

  Texto
Descrição gerada automaticamente com confiança média

Herança Múltipla

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

Conclusão

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