Aplicar Polimorfismo em c# e diferente em relação a Java..?

2 respostas
edymrex

Bem eu aprendi a programar em Java mas estou trabalhando com c# e não estou conseguindo aplicar polimorfismo em c# e não vejo uma explicação lógica para isso bem irei colocar o código em java depois em c#:

package com.polimorfismo;

public class Transporte
{
   
    public void exibeDados()
    {
       
        System.out.println("Método de exibição de dados");
    }
}

class Navio extends Transporte
{
    public void exibeDados()
    {
        System.out.println("Transporte navio");
    }
}

class Onibus extends Transporte
{
    public void exibeDados()
    {
        System.out.println("Transporte Onibus");
    }
}

class Carro extends Transporte
{
    public void exibeDados()
    {
       
        System.out.println("Transporte Carro");
    }
}

class Bicicleta extends Transporte
{
   
    public void exibeDados()
    {
      
        System.out.println("Transporte Bicicleta");
    }
}


class Exibe
{
     public static void main(String args[])
     {
         Transporte vet[] = new Transporte[4];
         vet[0]=new Bicicleta();
         vet[1]=new Carro();
         vet[2]=new Onibus();
         vet[3]=new Navio();
         
         
         for(Transporte tipo:vet)
         {
             tipo.exibeDados();
         }
     }
     
}

manespace que contém a classe Transportes:

namespace Locomocao
{
    public class Transportes
    {
        public String exibeDados()
        {
            return "Super classe";
        }
    }

    public class Onibus : Transportes
    {
        public String exibeDados()
        {
            return "Onibus";
        }
    }

   public  class Bicicleta : Transportes
    {
        public String exibeDados()
        {
            return "Bicicleta";
        }
    }

   public  class Carro : Transportes
    {
        public String exibeDados()
        {
            return "Carro";
        }

    }


    public class Navio : Transportes
    {
        public String exibeDados()
        {
            return "Navio";
        }

    }

}
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Locomocao;
 


public partial class Testes : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
      
          
       

    }
    protected void OK_Click(object sender, EventArgs e)
    {
         




        Transportes[] vet = new Transportes[4];

        vet[0] = new Onibus();
        vet[1] = new Carro();
        vet[2] = new Bicicleta();
        vet[3] = new Navio();




        foreach (Transportes i in vet)
        {
            this.lblResultados.Text = i.exibeDados();
        }
        
           


        
           
    }
}


Alguém tem uma explicação para isso..?

2 Respostas

T

Em C# você precisa usar a palavra-chave “virtual” para que o comportamento seja o mesmo do Java.

edymrex

valew

Criado 2 de outubro de 2007
Ultima resposta 2 de out. de 2007
Respostas 2
Participantes 2