Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/05/2008, 13:16
Francisco123
 
Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Exclamación Problema de Polimorfismo

Hola a todos, estaba haciendo un programilla en java que me han mandando en la universidad, per ya no se por donde seguir, estoy totalmente bloqueado, se mas o menos lo que tengo mal, pero pff no se solucionarlo, aver si me podeis ayudar.

La estructura del programa es una clase padre (vehiculo) con 3 clases hijas (motocicleta,automovil y camion) y de estas 3 hijas, automovil y camion usan la interfaz capacidadlimite, y todo ello evidentemente "gobernado" por el main

aqui les dejo el codigo del program que me da fallo, ayudenme por favor T.T

Código:
import java.io.*;
class Vehiculo{
  protected String fabricante;
  protected String modelo;
  protected int año;
  protected double kilometraje;
  
  public Vehiculo(String fabricante, String modelo, int año, double kilometraje){
    this.fabricante=fabricante;
    this.modelo=modelo;
    this.año=año;
    this.kilometraje=kilometraje;
  }

  public String getFabricante(){
    return fabricante;
  }

  public String getModelo(){
    return modelo;
  }

  public int getAño(){
    return año;
  }

  public double getKilometraje(){
    return kilometraje;
  }

}

interface CapacidadLimite{
  int an=5;
  int av=7;
  int c=3;

}

class Motocicleta extends Vehiculo{

  private String uso;

  public Motocicleta(String fabricante, String modelo, int año, double kilometraje, String uso){
    super(fabricante, modelo, año, kilometraje);
    this.uso=uso;
  }
  
  public String getUso(){
    return uso;
  }

}

class Automovil extends Vehiculo implements CapacidadLimite{


  private String estilo;
   public Automovil(String fabricante, String modelo, int año, double kilometraje, String estilo){
    super(fabricante, modelo, año, kilometraje);
    this.estilo=estilo;
  }

  public String getEstilo(){
    return estilo;
  }
  
  public void AN(){
    System.out.println("La capacidad limite para un automovil normal es "+an+" pasajeros");
  }

  public void AV(){
    System.out.println("La capacidad limite para un automovil vans es "+av+" pasajeros");
  }


}

class Camion extends Vehiculo implements CapacidadLimite{

  private int remolques;
  private boolean pasajeros;

  public Camion(String fabricante, String modelo, int año, double kilometraje, int remolques, boolean pasajeros){
    super(fabricante, modelo, año, kilometraje);
    this.remolques=remolques;
    this.pasajeros=pasajeros;
  }


  public int getRemolques(){
    return remolques;
  }

  public boolean getPasajeros(){
    return pasajeros;
  }

  public void seguridad(){
    if(pasajeros==true){
      System.out.println("La seguridad de este camion es baja.");
    }
    else{
      System.out.println("La seguridad de este camion es alta.");
    }
  }
  
  public void CL(){
    System.out.println("La capacidad limite del camion es "+c+" pasajeros");
  }
    
}


class Menu{

  public static void main(String[]args)throws IOException{
    BufferedReader leer=new BufferedReader(new InputStreamReader (System.in));
    Vehiculo Objeto=null;
    //Vehiculo Objeto;
    //Objeto = V1;
    
    System.out.println("Introduce 'm' para motocicleta, 'a' para automovil, 'c' para camion: ");
    char c;
    c=leer.readLine().charAt(0);

    switch(c){

      case 'm':
        Objeto=new Motocicleta("Derbi","Varial", 2001, 5000, "Utilizada en urbano");
        System.out.println("Fabricante: "+Objeto.getFabricante());
        System.out.println("Modelo: "+Objeto.getModelo());
        System.out.println("Año de fabricacion: "+Objeto.getAño());
        System.out.println("Kilometraje: "+Objeto.getKilometraje());
        System.out.println("Uso: "+Objeto.getUso());
        
        break;

      case 'a':
        Objeto=new Automovil("BMV", "V12", 2000, 50000,"Deportivo");
        System.out.println("Fabricante: "+Objeto.getFabricante());
        System.out.println("Modelo: "+Objeto.getModelo());
        System.out.println("Año de fabricacion: "+Objeto.getAño());
        System.out.println("Kilometraje: "+Objeto.getKilometraje());
        System.out.println("Estilo: "+Objeto.getEstilo());

        System.out.println("Si el coche es vans introduce el caracter 's' de lo contrario introduce 'n': ");
        char a= leer.readLine().charAt(0);
        if(a=='s'){
          Objeto.AV();
        }
        else{
          Objeto.AN();
        }
        break;

      case 'c':
        int n;
        boolean b=true;
        System.out.println("Indique los pasajeros que van a viajar en el camion: ");
        n =Integer.parseInt(leer.readLine());
        if(a<3){
          b=false;
        }
        Objeto=new Camion("Mercedes", "r59", 1991, 100000, 2,b);
        System.out.println("Fabricante: "+Objeto.getFabricante());
        System.out.println("Modelo: "+Objeto.getModelo());
        System.out.println("Año de fabricacion: "+Objeto.getAño());
        System.out.println("Kilometraje: "+Objeto.getKilometraje());
        System.out.println("Nº de remolques: "+Objeto.getRemolques());
        Objeto.seguridad();
        Objeto.CL();
        
        break;
      
    }
  }
  
}
Gracias de antemano.