Índice
O que é polimorfismo em C#
O polimorfismo vem de duas palavras gregas: poli e Morph. A palavra poli Aqui significa muitos, e Morph significa formas. É a capacidade do objeto na programação de adquirir diferentes formas.
O polimorfismo permite o tratamento de objetos de classes distintas como se fossem da mesma classe. Isso pode ser feito usando o conceito de herança, pois permite que classes derivadas tomem ou herdem as propriedades da classe base.
Tipos de polimorfismo em C#
O polimorfismo pode ser classificado em dois tipos com base em quando ocorre:
Sobrecarga de método
A sobrecarga do método pode definir vários métodos com o mesmo nome, mas contendo parâmetros diferentes. O compilador decide o método que será chamado com base em argumentos dados ao método. Usando a sobrecarga do método, podemos realizar tarefas semelhantes, mas com parâmetros de entrada diferentes.
Método substituindo
Método A substituição em C# é uma técnica que permite que uma classe derivada forneça sua própria implementação de um método que já é fornecido por sua classe base. A substituição do método é como a função virtual de C++. Quando um método em uma classe derivada tem o mesmo nome, o mesmo tipo de retorno e os mesmos parâmetros que um método em sua classe base, diz -se que o método da classe derivada substitui o método na classe base.
No polimorfismo, o método de base substituído deve ser virtual, abstrato ou substituir. Os métodos de substituição implementam os membros da classe base existentes de uma nova maneira. A substituição do método é alcançada usando as palavras -chave virtuais e substituídas.
Exemplos de polimorfismo em C#
Abaixo, é dado um código de exemplo que explica os dois métodos que substituem e sobrecarregam em C#:
Exemplo 1: sobrecarga de método
Aqui, no exemplo abaixo, definimos vários métodos em uma única classe. Todos esses métodos compartilham o mesmo nome, mas contêm parâmetros diferentes.
usando o sistema;O código acima fornece dois números para resumir, e demonstra sobrecarga de método em C#. O Calculetatesum O método está sobrecarregado para aceitar dois parâmetros inteiros e dois parâmetros duplos, respectivamente.
O método principal cria uma instância da classe do programa e chama o método Calculeatesum duas vezes, uma vez com dois argumentos inteiros e uma vez com dois argumentos duplos.
Quando o programa é executado, ele imprime a soma dos dois números passados para o Calculetatesum Método usando interpolação da string para criar a mensagem de saída. A saída a seguir pode ser vista no console:
Exemplo 2: substituição do método
Este exemplo demonstra o conceito de substituição do método, onde uma classe derivada pode fornecer sua própria implementação de um método herdado de sua classe base.
usando o sistema;Aqui está uma classe base que é nomeada Classe de forma. A classe de forma contém um método virtual chamado Empate. Aqui, uma palavra -chave virtual é uma indicação de que uma classe derivada pode substituir o método definido.
A classe de retângulo substitui o Empate método e é derivado da classe de forma. A classe retângulo tem seu próprio conjunto de propriedades para implementação. Nesse caso, o método de desenho de impressões de classe de retângulo Desenhando um retângulo em vez de Desenhando uma forma.
Em seguida, em Principal(), Uma instância da classe de forma é criada e seu método de desenho é chamado. Então uma instância da classe Retângulo é criada e seu método de desenho é chamado.
Como a classe de retângulo substitui o método de desenho da classe de forma, quando chamamos o método de desenho no objeto retângulo, a implementação da classe retângulo é chamada e Desenhando um retângulo é impresso no console. Quando o programa for executado, ele será lançado:
Como usar o polimorfismo em C#
Depois de conhecer o conceito de polimorfismo em C#, agora abordaremos as etapas para usá -lo na programação C#.
Etapa 1: Defina a classe base
O primeiro passo é definir a classe base que contém os métodos ou propriedades que serão compartilhados por todas as classes derivadas. A classe base é definida usando o aula Palavra -chave:
animal de classe públicaO código acima contém uma classe base Animal que tem um método virtual Fazer som. A palavra -chave virtual mostra que a classe derivada substituirá o método definido.
Etapa 2: Defina as classes derivadas
O próximo passo é definir as classes derivadas que vêm da classe base. Em C#, podemos definir uma classe derivada usando o ":" operador.
Cão de classe pública: animalO exemplo acima contém duas classes de acionamento Cachorro e Gato, E ambas as classes fazem propriedades da classe base que se chama Animal. Ambas as classes substituem o Fazer som método com sua implementação.
Etapa 3: Use o polimorfismo
A etapa final é usar o polimorfismo no código. Agora definiremos instâncias das classes derivadas e chamaremos seus métodos usando a referência da classe base.
Animal myanimal = novo animal ();Aqui criamos instâncias das aulas de animais, cães e gatos. Depois disso, o Fazer som O método é chamado em cada instância. Desde o Fazer som O método é virtual, a implementação real chamada depende do tipo real da instância. Isso significa que quando chamamos o MyDog.Makeound () ou mycat.Makeound (), o Fazer som o método será chamado na classe de cães ou gatos, respectivamente.
Código de exemplo
A seguir, o código combinado das etapas acima explicadas:
usando o sistema;Depois de executar o código acima, a seguinte saída pode ser vista no console:
Conclusão
Usando o polimorfismo em C# Um código pode ser escrito que gerencia vários tipos de objetos. Em C#, podemos usar o polimorfismo definindo uma classe base, criando classes derivadas que herdam da classe base e usando a referência da classe base para chamar os métodos das classes derivadas. Seguindo as etapas descritas no artigo acima, qualquer pessoa pode usar o conceito de polimorfismo em C#.