Autor Tema: Constructor A in class A cannot be applied to given types Reason: Actual and for  (Leído 805 veces)

Joel287g

  • Sin experiencia
  • *
  • Mensajes: 1
    • Ver Perfil
Buenas tengo un problema y es que estoy realizando mi proyecto pero no se que error ese ese, tengo mi clase padre "Aula" y mis subclases "aulaTeorica" y "aulaPratica". Anexo las respectivas clases. Agradecería cualquier tipo de ayuda, gracias!

CLASE AULA

public class Aula {
   
    private String nombreAula,ubicacionAula;
    private int capacidadAula;
   
    public Aula(String nombreAula, String ubicacionAula, int capacidadAula){
       
        this.nombreAula = nombreAula;
        this.ubicacionAula = ubicacionAula;
        this.capacidadAula = capacidadAula;
       
    }

//Creación de métodos Getter y Setter

    public String getNombreAula() {
        return nombreAula;
    }
   
    public void setNombreAula(String nombreAula){
        this.nombreAula = nombreAula;
    }

    public String getUbicacionAula() {
        return ubicacionAula;
    }
 
    public void setUbicacionAula(String ubicacionAula){
        this.ubicacionAula = ubicacionAula;
    }

    public int getCapacidadAula() {
        return capacidadAula;
    }
   
    public void CapacidadAula(int capacidadAula){
        this.capacidadAula = capacidadAula;
    }
}



SUB CLASE AULATEORICA

public class AulaTeorica extends Aula{

    public AulaTeorica(String nombreAula, String ubicacionAula, int capacidadAula) {
        super(nombreAula, ubicacionAula, capacidadAula);
    }
   
    private String tipoPupitre;

    public AulaTeorica(String tipoPupitre){

/*
Error de: public AulaTeorica(String tipoPupitre)       
Constructor Aula in class Aula canot be applied to given types.
Required: String, String, int
Found: No arument
Reason: Actual and formal argument list differ in length
*/   
     
       
        this.tipoPupitre = tipoPupitre;
       
    }

//Creación de métodos Getter y Setter   
   
    public String getTipoPupitre() {
        return tipoPupitre;
    }
   
    public void setTipoPupitre(String tipoPupitre){
    this.tipoPupitre = tipoPupitre;
    }
}


SUB CLASE AULAPRACTICA

public class AulaPractica extends Aula {

    public AulaPractica(String nombreAula, String ubicacionAula, int capacidadAula) {
        super(nombreAula, ubicacionAula, capacidadAula);
    }
   
    private int altavoces, videoCamara;

    public AulaPractica(int altavoces, int videoCamara){

/*
Error de: public AulaPractica(int altavoces, int videoCamara)       
Constructor Aula in class Aula canot be applied to given types.
Required: String, String, int
Found: No arument
Reason: Actual and formal argument list differ in length
*/


        this.altavoces = altavoces;
        this.videoCamara = videoCamara;

    }

//Creación de métodos Getter y Setter
   
    public int getAltavoces() {
        return altavoces;
    }
   
    public void setAltavoces(int altavoces){
        this.altavoces = altavoces;
    }
   
    public int getVideoCamara() {
        return videoCamara;
    }
   
    public void setVideoCamara(int videoCamara){
        this.altavoces = altavoces;
    } 
}
« Última modificación: 26 de Octubre 2020, 18:20 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 737
    • Ver Perfil
Hola.

Cuando hay herencias, los constructores de las clases hijas han de recibir, como mínimo, los parámetros que exige el constructor de la clase padre.

Por eso el primer constructor te lo da por bueno, pero el segundo constructor te lo rechaza.

En lugar de dos constructores, haz solo uno que reciba TODOS los parámetros: los exigidos por la clase padre y los que incorpora la clase hija.

Por ejemplo, para la clase AulaTeorica, fíjate en este constructor.
Recibe los 4 parámetros, los tres primeros se los pasamos a la clase padre.
El cuarto, lo usamos para la clase hija

Citar
public class AulaTeorica extends Aula{

    private String tipoPupitre;

    public AulaTeorica(String nombreAula, String ubicacionAula, int capacidadAula, int tipoPupitre) {
        super(nombreAula, ubicacionAula, capacidadAula);
        this.tipoPupitre = tipoPupitre;
    }

//Creación de métodos Getter y Setter   
   
    public String getTipoPupitre() {
        return tipoPupitre;
    }
   
    public void setTipoPupitre(String tipoPupitre){
    this.tipoPupitre = tipoPupitre;
    }
}
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

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