Autor Tema: Sobreescribir métodos en Java Métodos polimorfismos. Ejercicio resuelto CU00690B  (Leído 2275 veces)

HumbertoAli

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 21
    • Ver Perfil
Buenas aca les dejo mis respuestas planteadas al ejercicio CU00690B del curso de programación aprenda Java con BlueJ.

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?

R: no, no puede

b) ¿Un objeto de tipo estático declarado Vehiculo puede contener a un objeto Taxi en tiempo de ejecución?

R: Si

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.

R:
Código: [Seleccionar]
public class Vehiculo1 {
    private String matricula;
    private int numeroDeRuedas;
   
    public  Vehiculo1(){
        matricula = "";
        numeroDeRuedas = 0;
    }
    public Vehiculo1(String matricula, int numeroDeRuedas){
        this.matricula = matricula;
        this.numeroDeRuedas = numeroDeRuedas;
    }
    public void setMatricula(String matricula){
        this.matricula = matricula;
    }
    public void setNumeroDeRuedas(int ruedas){
        this.numeroDeRuedas = ruedas;
    }
    public String getMatricula(){
        return matricula;
    }
    public int getNumeroDeRuedas(){
        return numeroDeRuedas;
    }
    public String toString(){
        String infor;
        infor = "La matricula del vehiculo es: "+matricula+"\nEl numero de ruedas: "+numeroDeRuedas;
        return infor;
    }
}

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.

R:
Código: [Seleccionar]
public class Taxi extends Vehiculo1 {
    private String nombreDelConductor;
    private int numeroDePlazas;
   
    public Taxi(){
        super();
        nombreDelConductor = "";
        numeroDePlazas = 0;
    }
    public Taxi(String matricula, int numeroDeRuedas, String nombre, int numeroDePlazas){
        super(matricula, numeroDeRuedas);
        this.nombreDelConductor = nombre;
        this.numeroDePlazas = numeroDePlazas;
    }
    public void setNombreDelConductor(String nombre){
        this.nombreDelConductor = nombre;
    }
    public void setNumeroDePlazas(int numero){
        this.numeroDePlazas = numero;
    }
    public String getNommbreDelConductor(){
        return nombreDelConductor;
    }
    public int getNumeroDePlazas(){
        return numeroDePlazas;
    }
    public String toString(){
        String taxi = super.toString()+"\nNombre del conductor: "+nombreDelConductor+"\nNumero de plazas: "+numeroDePlazas;
        return taxi;
    }
}

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é?

R:
Código: [Seleccionar]
public class TestTaxi {
    public static void main(String[]args){
        Vehiculo1 miVehiculo = new Taxi("HGF756",4,"Humberto",10);
        System.out.println("Datos del taxista: ");
        System.out.println(miVehiculo.toString());
       
    }
}

¿Qué método toString() resulta de aplicación, el propio de la clase Vehiculo o el propio de la clase Taxi? ¿Por qué?
R: el metodo toString() que resulta es el de la clase Taxi ya que en tiempo de ejecución Java está constantemente “buscando”  el método que corresponda en función del tipo dinámico.
« Última modificación: 05 de Junio 2017, 17:52 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Buenas.

El apartado a no es correcto, la respuesta sería si. Aquí te dejo un enlace donde podrás leer una buena explicación.

https://www.aprenderaprogramar.com/foros/index.php?topic=1147.msg6341#msg6341

Saludos. ;D

HumbertoAli

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 21
    • Ver Perfil
muchas gracias por la corrección... me había confundido

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".