[Resolvido]"herança múltipla" erro?

6 respostas
F

Não consigo identificar o motivo do seguinte erro: constructor HoraCalendario cannot be applied to given types:
required:int,int,int,int,int,int
found: no arguments
reason:actual and formal lists differ in lenght
linhas: 21 a 57

e

imcompatible types:
required: String
found: int
linhas: 122 a 140

public  interface Clock1 
{
     
        
        public int getHora();
        public int getMinuto();
	public int getSegundo();
        public void setHora(int hora);
	public void setMinuto(int minuto);
	public void setSegundo(int segundo);
}
public class HoraCalendario
{
	public int dia;
	public  int mes;
	public  int ano;
        public  int hora;
        public  int minuto;
        public  int segundo;
	
	HoraCalendario(int dia,int mes, int ano, int hora, int minuto, int segundo)
	{
 		
                
                this.dia=dia;
                this.mes=mes;
                this.ano=ano;
                this.hora=hora;
                this.minuto=minuto;
                this.segundo=segundo;
                
	}

  
	public int getDia()
	{
		return this.dia;	
	}
	public int getMes(){
                return this.mes;
        };
	public int getAno() {
                return this.ano;
        };
	public void setDia(int dia)
	{
		this.dia=dia;	
	}
	public void setMes(int mes){
                this.mes=mes;
        };
	public void setAno(int ano){
                this.ano=ano;
        }
      
	
};
public class ClockCalendario extends HoraCalendario implements Clock1
{
	
    ClockCalendario(int dia,int mes, int ano, int hora, int minuto,int segundo)
	{
            
           
            this.dia = dia;
            this.mes = mes;
            this.ano = ano;
            this.hora=hora;
            this.minuto =minuto;
            this.segundo=segundo;
            
                    
         }
    
     public int getHora(){
             return this.hora;
         }
                
     public int getMinuto(){
            return this.minuto;
     }           
                
     public int getSegundo() {
            return this.segundo;
     }   
     public void setHora(int hora){
         this.hora=hora;
     }
     public void setMinuto(int minuto){
         this.minuto=minuto;
     }
     public void setSegundo(int segundo){
         this.segundo=segundo;
     }           
     
    public void imprime()
	{
		System.out.println("dia: "+ this.dia + " mes: "+  this.mes+ " ano: " +  this.ano +" hora :" +  this.hora+ "minuto :" +  this.minuto+ "segundo : " +  this.segundo +"\n");

	}
                
};
public class TesteHerancaMultipla
{
	public static void main(String[] args) 
	{
		try 
                {
			InputStreamReader is = new InputStreamReader(System.in);		
			BufferedReader br = new BufferedReader(is);
			int dia = 0;
			int mes = 0;
			int ano = 0;
			int hora = 0;
			int minuto = 0;
			int segundo = 0;
			int i=0;
                        
                        ClockCalendario hc = new ClockCalendario();
                        for(i=0;i<0;i++)
                        {
			System.out.println("Digite o dia: ");
			dia = br.readLine();
			hc.setDia(Integer.toString(dia));
			System.out.println("Digite o mes: ");
			mes = br.readLine();
			hc.setMes(Integer.toString(mes));
			System.out.println("Digite o ano: ");
			ano = br.readLine();
			hc.setAno(Integer.toString(ano));	
			System.out.println("Digite a hora: ");
                        hora = br.readLine();
                        hc.setHora(Integer.toString(hora));
                        System.out.println("Digite o minuto: ");
                        minuto = br.readLine();
                        hc.setMinuto(Integer.toString(minuto));
                        System.out.println("Digite o segundo: ");
                        segundo = br.readLine();
                        hc.setSegundo(Integer.toString(segundo));
                        
                        hc.imprime();

			br.close();}
                }
                        catch (Exception e) {
		}
	}
};

6 Respostas

vtr002

No contrutor do ClockCalendario é necessário chamar um super() com parametros já que você não criou um cronstrutor default em HoraCalendario

douglaskd

vamos por partes:

ClockCalendario hc = new ClockCalendario();  // linha 119 - este construtor não existe, 

ClockCalendario()  { } // solução: crie um construtor que não receba nenhum argumento na classe ClockCalendario:

---------------------

dia = br.readLine(); // linha 123 em diante

//solução: converta String em Int...troque pelo código abaixo

dia = Integer.parseInt(br.readLine()); //faça com todos os outros que estão recebendo string
F

O segundo erro foi resolvido, muito obrigado. Mas o primeiro, na hora de criar o construtor na classe ClockCalendario, apresenta o erro exatamente na linha do construtor.
constructor HoraCalendario in class HoraCalendario cannot be applied to given types:
required: int, int, int, int, int, int
found: no arguments
reason: actual and formal argument list differ in lenght.

douglaskd

crie também um construtor vazio para HoraCalendario, na classe HoraCalendario

HoraCalendario(){   }
F
douglaskd:
vamos por partes:
ClockCalendario hc = new ClockCalendario();  // linha 119 - este construtor não existe, 

ClockCalendario()  { } // solução: crie um construtor que não receba nenhum argumento na classe ClockCalendario:

---------------------

dia = br.readLine(); // linha 123 em diante

//solução: converta String em Int...troque pelo código abaixo

dia = Integer.parseInt(br.readLine()); //faça com todos os outros que estão recebendo string


Ops, faltou a citação.

F

douglaskd:
crie também um construtor vazio para HoraCalendario, na classe HoraCalendario

HoraCalendario(){   }

Tudo certo, muitíssimo obrigado :smiley: .

Criado 28 de março de 2013
Ultima resposta 28 de mar. de 2013
Respostas 6
Participantes 3