Simples - não tou conseguindo fazer overload (sobrecarga) na (subclass) classe filha

5 respostas
A

o método testarSobrecargaDeMetodo() deveria conflitar não, digo dar uma mensagem como already defined (via bloco de notas) ou duplicated (no Eclipse)... não? quando o coloco na classe mãe ele reclama mas na filha não...

class SobrecargaMetodo{

	/**
	*Método para testar sobrecarga
	*/
	public int testarSobrecargaDeMetodo(){
		int a = 1;
		int resultado = a + 1;
		System.out.print(resultado);
		return resultado;
	}
}
class TestarSobrecargaMetodo extends SobrecargaMetodo{
	
	public static void main (String[] args){
		new TestarSobrecargaMetodo().testarSobrecargaDeMetodo();
	}

	/**
	*Método para testar sobrecarga
	*/
	public int testarSobrecargaDeMetodo(){
		int a = 1;
		int resultado = a + 1;
		System.out.print(resultado);
		return resultado;
	}
}

5 Respostas

maior_abandonado

não sei se eu entendi direito sua dúvida… explica melhor, cola exatamente a mensagem de erro que da (se é que da alguma)…etc

A

a dúvida é:

segundo o código acima… pq não consigo fazer overload (sobrecarga) do método testarSobrecargaDeMetodo()?

joel.amalio

O que você fez foi sobreescrever… para sobreacarregar o método teria que mudar a lista de parâmetros… :smiley:

evertonsilvagomesjav

Pois é vc nao esta fazendo sobrecarga nenhuma.

romarcio

Vc não fez uma SobreCarga, vc fez um Override, que no caso é substituir o método da SuperClasse pelo métoda da subclasse.

Para criar sobrecarga, vc precisa obrigatóriamente, ter 2 ou mais métodos com o mesmo nome porém com a lista de argumentos diferentes. Não adianta mudar apenas o tipo de retorno, os argumentos ou o tipo de parametros do método deverá ser diferente.

public class Dog {

    //método latir original
    public void latir() {
        System.out.println("Auau.");
    }

    //sobre carga do método latir, mais parametros forma inseridos no método de mesmo nome
    public void latir(int num) {
        for (int i = 0; i < num; i++) {
            System.out.println("Auau..");
        }
    }

    //neste caso a sobrecarga ocorreu com o aumento de parametros e o tipo de retorno void para string
    public String latir(int num, int peso) {
        for (int i = 0; i < num; i++) {
            System.out.println("Auau...");
        }
        return "O cão latiu " + num + " vezes e pesa " + peso + "kg.";
    }

}
Criado 18 de agosto de 2010
Ultima resposta 18 de ago. de 2010
Respostas 5
Participantes 5