Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Joel287g en 06 de Agosto 2020, 17:54

Título: Constructor A in class A cannot be applied to given types Reason: Actual and for
Publicado por: Joel287g en 06 de Agosto 2020, 17:54
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;
    } 
}
Título: Re:Ayuda java - Constructor Aula in class Aula canot be applied to given types
Publicado por: Kabuto en 07 de Agosto 2020, 02:38
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;
    }
}