02/05/2008, 13:16
|
| | Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 16 años, 8 meses Puntos: 0 | |
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. |