Exemplo n.º 1
0
        static void MostrarOQueEhPolimorfismo()
        {
            tela.DesenharLinha();

            tela.EscreverNaCor("2) O que é Polimorfismo?", Tela.corInformacaoDestaque);
            tela.PularLinha();

            tela.Escrever("Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar " +
                          "métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, " +
                          "usando para tanto uma referência a um objeto do tipo da superclasse. A decisão sobre qual o método que deve ser selecionado, " +
                          "de acordo com o tipo da classe derivada, é tomada em tempo de execução, através do mecanismo de ligação tardia.");
            tela.PularLinha();

            tela.Escrever("No exemplo abaixo, temos a classe \"Pessoa\" que contêm o método \"Cumprimentar\". As classes filhas \"Ingles\", " +
                          "\"Brasileiro\" e \"Paranaense\" sobrescrevem este método de acordo com sua particularidade: ");
            // fonte: http://www.dca.fee.unicamp.br/cursos/PooJava/polimorf/index.html#:~:text=Polimorfismo%20%C3%A9%20o%20princ%C3%ADpio%20pelo,objeto%20do%20tipo%20da%20superclasse.
            tela.PularLinha();

            var brasileiro = new Brasileiro();
            var ingles     = new Ingles();
            var paranaense = new Paranaense();

            tela.EscreverNaCor("Cumprimentar o Brasileiro:", Tela.corInformacao);
            Cumprimentar(brasileiro);
            tela.PularLinha();

            tela.EscreverNaCor("Cumprimentar o Inglês:", Tela.corInformacao);
            Cumprimentar(ingles);
            tela.PularLinha();

            tela.EscreverNaCor("Cumprimentar o Paranaense:", Tela.corInformacao);
            Cumprimentar(paranaense);
            tela.PularLinha();
        }