Autor Tema: Sobreescribir métodos en Java. Tipo estático y dinámico. Ligadura. CU00690B  (Leído 2346 veces)

umadara

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 45
    • Ver Perfil
Buenas aquí otro ejercicio

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

No

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

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.

Código: [Seleccionar]
public class Vehiculo {
   
    String matricula;
   
    int nRuedas;
   
    public Vehiculo (String matricula, int nRuedas) {
       
        this.matricula = matricula;
       
        this.nRuedas = nRuedas;
   
    }
   
    public void setMatricula(String matricula) {
       
        this.matricula = matricula;
   
    }
   
    public void setNRuedas (int nRuedas) {
       
        this.nRuedas = nRuedas;
   
    }
   
    public String getMatricula() {return matricula;}
   
    public int getNRuedas() {return nRuedas;}
   
    public void mostrar() {
       
        System.out.println ("la matrícula del vehículo es " + getMatricula() + "el número de ruedas del vehículo es " + getNRuedas());
   
    }

}


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.

Código: [Seleccionar]
public class Taxi extends Vehiculo {
   
    String nombreDelConductor;
   
    int numeroPlazas;
   
    public Taxi (String matricula, int nRuedas, String nombreDelConductor, int numeroPlazas) {
       
        super (matricula, nRuedas);
       
        this.nombreDelConductor = nombreDelConductor;
       
        this.numeroPlazas = numeroPlazas;
   
    }
   
    public void setNombreDelConductor (String nombreDelConductor) {
       
        this.nombreDelConductor = nombreDelConductor;
   
    }
   
    public void setNumeroPlazas (int numeroPlazas) {
       
        this.numeroPlazas = numeroPlazas;
   
    }
   
    public String getNombreDelConductor() {return nombreDelConductor;}
   
    public int getNumeroPlazas() {return numeroPlazas;}
   
    public void mostrar() {
       
        System.out.println ("la matrícula del taxi es " + getMatricula() +"\n"+
        "el número de ruedas es " +getNRuedas() + "\n" + "el nombre del conductor es " + getNombreDelConductor() +"\n"+
        "el número de plazas del Taxi es " + 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é?


Código: [Seleccionar]
public class Test {
   
    public static void main (String [] args) {
       
        Vehiculo t1 = new Taxi("0000CCC", 4, "manolo", 4);
       
        t1.mostrar();
   
    }

}

Como se dice en la unidad, el método mostrar visualiza por la pantalla el método mostrar de la subclase debido a la cercanía.
« Última modificación: 21 de Julio 2016, 12:31 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Buenas

Para la pregunta a) la respuesta es sí

También tienes que tener en cuenta que el método que tú has sobreescrito es mostrar() y no toString() como indicaba el ejercicio.

Puedes ver la explicación y un modelo de solución en - > https://www.aprenderaprogramar.com/foros/index.php?topic=1147.0

Salu2

umadara

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 45
    • Ver Perfil
Buenas Ogramar (tu nick me lo corrige el corrector por agramar  >:( >:( ;D ;D), en cuanto a la primera pregunta decir que debió ser un error mío, hago los ejercicios bastante rápido y no tiene lógica lo que contesté. En cuanto a los del método que sobreescribí decir  que lo llamé mostar xk pensaba que mostraba mejor lo que hacía no por otra razón.
Sin más, como siempre agradecer tú respuesta, ya que me hace darme cuenta de mis errores y evolucionar, muchas gracias, saludos.

 

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".