Hola!
Vengo a resolver el ejercicio 90° del curso, donde se nos da una serie de preguntas...
Responde a las siguientes preguntas:
Supongamos la superclase Vehiculo que representa a cualquier tipo de vehículo y la subclase Taxi que representa a un tipo de vehículo concreto.a) ¿Un objeto de tipo estático declarado Taxi puede contener a un objeto Vehiculo en tiempo de ejecución?Por lo que lei en caps anteriores, no seria posible esto.
b) ¿Un objeto de tipo estático declarado Vehiculo puede contener a un objeto Taxi en tiempo de ejecución?Asi es.. si es posible.
c) Escribe el código de una clase Vehiculo con los atributos matricula (String) y numeroDeRuedas (int), constructor, métodos getters y setters y método toString() para mostrar la información de un vehículo.package CarrosJava;
public class Vehiculo {
String matricula; int numeroRuedas;
public Vehiculo(String matricula, int numeroRuedas){
this.matricula = matricula;
this.numeroRuedas = numeroRuedas;
}
public void setMatricula(String dato){matricula = dato;}
public void setNumeroRuedas(int dato){numeroRuedas = dato;}
public String getMatricula(){return matricula;}
public int getNumeroRuedas(){return numeroRuedas;}
public String toString(){
return "Maticula del vehiculo: " + getMatricula()
+ "Numero de Ruedas: " + getNumeroRuedas();
}
}
d) Escribe el código de una clase Taxi que herede de vehículo y que además de los atributos de Vehiculo lleve un atributo adicional nombreDelConductor (String) y numeroDePlazas (int), constructor, métodos getters y setters y método toString() para mostrar la información de un Taxi.package CarrosJava;
public class Taxi extends Vehiculo {
private String nombreConductor;
private int numeroPlazas;
public Taxi(String matricula, int numeroRuedas, String nombreConductor, int numeroPlazas){
super(matricula,numeroRuedas);
this.nombreConductor = nombreConductor;
this.numeroPlazas = numeroPlazas;
}
public void setNombreConductor(String dato){nombreConductor = dato;}
public void setNumeroPlazas(int dato){numeroPlazas = dato;}
public String getNombreConductor(){return nombreConductor;}
public int getNumeroPlazas(){return numeroPlazas;}
public String toString(){
return "Nombre del conductor: "+getNombreConductor()+"\nNumero de Plazas: "+getNumeroPlazas();
}
}
e) Escribe el código de una clase test con el método main que cree un objeto cuyo tipo es Vehiculo, instanciado como Taxi. Establece valores para sus atributos y usa el método toString(). ¿Qué método toString() resulta de aplicación, el propio de la clase Vehiculo o el propio de la clase Taxi? ¿Por qué?package CarrosJava;
public class test {
public static void main(String[]args){
Vehiculo carrito = new Taxi("DAN-4533",4,"Dan",4);
System.out.println(carrito.toString());
}
}
Y el resultado fue:
Se ejecuto el método toString() de la propia clase
Vehiculo, se declaro el objeto carrito como tipo
Vehiculo, ademas leí que al hacer:
Vehiculo carrito = new Taxi("DAN-4533",4,"Dan",4);
Se esta agregando un objeto desconocido de forma dinámica al tipo Taxi!
Si algo anda mal, o respuesta incorrecta, me podrían comentar de cual se trata!