Ejemplo n.º 1
0
    public static void Main()
    {
        Veiculo a = new Carro();

        a.Andar();         //imprime Carro, mesmo que x seja do tipo Veiculo
        Carro b = new Carro();

        b.Andar();         //imprime Carro, claro, isso é fácil deduzir
        Veiculo c = new Veiculo();

        c.Andar();         //imprime Veiculo, é óbvio
        Carro2 d = new Carro2();

        d.Andar();                //óbvio que imprime Carro
        Veiculo e = new Carro2(); //aqui só esconde, não faz polimorfismo, a instância não importa

        e.Andar();                //aqui imprime Veiculo, afinal o tipo da variável é dessa classe
        Carro3 f = new Carro3();

        f.Andar();                //funciona igual, nernhuma confusão
        Veiculo g = new Carro3(); //pode estar esperando polimorfismo que não ocorrerá

        g.Andar();                //funciona igual, mas poderia não ser o que deseja
        Carro4 h = new Carro4();

        h.Andar();                 //funciona igual, nernhuma confusão
        Veiculo2 i = new Carro4(); //pode estar esperando polimorfismo que não ocorrerá

        i.Andar();                 //funciona igual, mas poderia não ser o que deseja
    }