Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Herança e polimorfismo em C# com exemplos de programas

O que é herança em C#?


Herança é um conceito importante de C#. Herança é um conceito no qual você define classes pai e classes filhas. As classes filhas herdam métodos e propriedades da classe pai, mas, ao mesmo tempo, também podem modificar o comportamento dos métodos, se necessário. A classe filha também pode definir métodos próprios, se necessário.

Neste tutorial de C#, você aprenderá-

Vamos entender melhor a herança do C# por meio de um exemplo de programa:

Exemplo de herança C#


Vamos agora ver como podemos incorporar o conceito de herança em nosso código.

Etapa 1) O primeiro passo é alterar o código da nossa classe Tutorial. Nesta etapa, adicionamos o código abaixo ao arquivo Tutorial.cs.



Observe que agora precisamos adicionar o modificador de acesso de 'protegido' ao campo TutorialID e TutorialName.

Lembre-se de que mencionamos esse modificador de acesso no tutorial do Modificador de acesso. Bem, aqui você pode ver o propósito de ter isso. Somente quando você tiver esse modificador de acesso (protegido), a classe filha poderá usar os campos da classe pai.

Etapa 2) O segundo passo é adicionar nossa nova classe filha. O nome desta classe será “Guru99Tutorial”. Nesta etapa, adicionamos o código abaixo ao arquivo Tutorial.cs. O código deve ser colocado após a definição da classe Tutorial.



Explicação do código:-

  1. A primeira etapa é criar a classe filha Guru99Tutorial. Também precisamos mencionar que esta classe será uma classe filha da classe Tutorial. Isso é feito pela palavra-chave ':'.
  2. A seguir, estamos definindo um método chamado RenameTutorial. Ele será usado para renomear o campo TutorialName. Este método aceita uma variável string que contém o novo nome do Tutorial.
  3. Em seguida, atribuímos o parâmetro pNewName ao campo TutorialName.
    Observação :– Apesar de não termos definido o campo TutorialName na classe “Guru99Tutorial”, ainda podemos acessar este campo. Isso se deve ao fato de que “Guru99Tutorial” é uma classe filha da classe Tutorial. E como fizemos os campos da classe Tutorial como protegidos, eles podem ser acessados ​​por esta classe.

Etapa 3) O último passo é modificar nosso arquivo principal Program.cs. Em nosso aplicativo de console, vamos fazer um objeto da classe Guru99Tutorial. Com este objeto, vamos chamar o método RenameTutorial. Vamos então exibir o campo TutorialName com a ajuda do método GetTutorial.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 public class Tutorial
 {
  protected int TutorialID; 
  protected string TutorialName;
  
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  
  public String GetTutorial()
  {
   return TutorialName;
  }
 }
  public class Guru99Tutorial:Tutorial
  {
   public void RenameTutorial(String pNewName)
   {
    TutorialName=pNewName;
   }
  
  static void Main(string[] args) 
  {
   Guru99Tutorial pTutor=new Guru99Tutorial();
   
   pTutor.RenameTutorial(".Net by Guru99");
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Explicação do código:-
  1. O primeiro passo é criar um objeto para a classe Guru99Tutorial. Isso é feito através da palavra-chave ‘new’. Observe que desta vez não estamos criando um objeto da classe Tutorial.
  2. Usamos o método RenameTutorial da classe Guru99Tutorial para alterar o campo TutorialName. Passamos a string “.Net by Guru99” para o método RenameTutorial.
  3. Chamamos então o método GetTutorial. Observe que, embora esse método não esteja definido na classe Guru99Tutorial, ainda podemos acessá-lo. A saída do método GetTutorial é exibida no console por meio do método Console.WriteLine.

Se o código acima for inserido corretamente e o programa for executado com sucesso, a seguinte saída será exibida.

Saída:



A partir da saída, podemos ver claramente que o campo TutorialName foi renomeado para “.Net por Guru99”. Isso foi possível pelo método RenameTutorial chamado pela classe filha.

O que é polimorfismo em C#?


Polimorfismo em C# é um conceito OOPs onde um nome pode ter muitas formas. Por exemplo, você tem um smartphone para comunicação. O modo de comunicação que você escolher pode ser qualquer coisa. Pode ser uma ligação, uma mensagem de texto, uma mensagem de imagem, correio, etc. Então, o objetivo é comum, ou seja, a comunicação, mas a abordagem deles é diferente. Isso é chamado de polimorfismo.

Você obterá uma melhor compreensão do polimorfismo C# pelo exemplo de programa abaixo:

Exemplo de polimorfismo C#


Vejamos agora, como podemos incorporar o conceito de Polimorfismo em nosso código.

Etapa 1) O primeiro passo é alterar o código da nossa classe Tutorial. Nesta etapa, adicionamos o código abaixo ao arquivo Tutorial.cs.



Explicação do código:-

1 e 2) O primeiro passo é o mesmo de nossos exemplos anteriores. Estamos mantendo a definição do método SetTutorial como está.

3) Este método define o TutorialID e o TutorialName com base nos parâmetros pID e pName.

4) Aqui é onde fazemos uma mudança em nossa classe onde adicionamos um novo método com o mesmo nome de SetTutorial. Só que desta vez estamos passando apenas um parâmetro que é o pName. Neste método, estamos apenas configurando o campo TutorialName para pName.

Etapa 2) O último passo é modificar nosso arquivo principal Program.cs. Em nosso aplicativo de console, vamos criar um objeto da classe Guru99Tutorial.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  public int TutorialID; 
  public string TutorialName;
  
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public void SetTutorial(string pName) 
  {
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
   
   pTutor.SetTutorial(1,"First Tutorial");
   Console.WriteLine(pTutor.GetTutorial());
   
   pTutor.SetTutorial("Second Tutorial");
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Explicação do código:-
  1. Na primeira etapa, estamos usando o método SetTutorial com 2 parâmetros. Onde estamos passando TutorialID e TutorialName para este método.
  2. Na segunda etapa, agora estamos chamando o método SetTutorial com apenas um parâmetro. Estamos apenas passando o TutorialName para este método.

Se o código acima for inserido corretamente e o programa for executado, a seguinte saída será exibida. Caso você queira também buscar o ID do Tutorial junto com o Nome do Tutorial , você deve seguir o passo abaixo
  1. Crie um método separado chamado public int GetTutorialID
  2. Nesse método, escreva a linha de código “return TutorialID”. Isso pode ser usado para retornar o TutorialID ao programa de chamada.

Saída:



A partir da saída, podemos ver claramente que ambos os métodos foram chamados com sucesso. Por causa disso, as strings “Primeiro Tutorial” e “Segundo Tutorial” foram enviadas para o console.

Resumo


Linguagem C

  1. Expressões, instruções e blocos em C# (com exemplos)
  2. Classe e objeto C#
  3. Classe abstrata e método C#
  4. C# Classe Parcial e Método Parcial
  5. Classe e método selados em C#
  6. Funções C++ com exemplos de programas
  7. Diferença entre estrutura e classe:explicada com exemplo de C++
  8. Diferença entre while e do-while:explicado com exemplos
  9. type() e isinstance() em Python com exemplos
  10. C# - Estrutura do Programa