Polimorfismo Java

Boa tarde,

Está correto considerar esse método como polimorfismo?

//MÉTODO LOCALIZAR FUNCIONARIO
public boolean localizar(String cFuncionario, String nomeProcurado) {
try {
BufferedReader br = new BufferedReader(new FileReader(cFuncionario));
int cont = 0;
while (br.ready()) {
String linha = br.readLine();
String arrayNome[] = linha.split("&");

			if (arrayNome[0].equalsIgnoreCase(nomeProcurado)) {
				cont++;
			}

		}
		br.close();

		if (cont == 0) {
			this.msErro = "Funcionário não localizado";
			return false;
		}

	} catch (Exception e) {
		
		this.msErro = "Erro de Exception:" + e.toString();
	}
	return true;

}

// MÉTODO LOCALIZAR CADASTRO DE TODAS AS FICHAS (FUNCIONARIO E CLIENTE)
public boolean localizar(String cFuncionario, String cCliente, String nomeProcurado) {
try {
BufferedReader brF = new BufferedReader(new FileReader(cFuncionario));
BufferedReader brC = new BufferedReader(new FileReader(cCliente));
int cont = 0;
while (brF.ready()) {
String linha = brF.readLine();
String arrayNome[] = linha.split("&");

			if (arrayNome[0].equalsIgnoreCase(nomeProcurado)) {
				cont++;
			}

		}
		brF.close();
		while (brC.ready()) {
			String linha = brC.readLine();
			String arrayNome[] = linha.split("&");

			if (arrayNome[0].equalsIgnoreCase(nomeProcurado)) {
				cont++;
			}

		}
		brC.close();

		if (cont == 0) {
			this.msErro = "Clinte não localizado";
			return false;
		}

	} catch (Exception e) {
		
		this.msErro = "Erro de Exception:" + e.toString();
	}
	return true;

}

Não, você está confundindo polimorfismo com overloading.

No polimorfismo você tem classes com implementações diferentes de um método mantendo a mesma assinatura, herdado de uma superclasse ou implementados a partir de uma interface. Nesse caso a jvm sabe chamar o método correto de acordo com a classe efetivamente instanciada.

Por exemplo, suponhamos que você tenha uma superclasse Funcionario com o método calcSalario, a partir dela você pode criar uma classe FuncSalFixo, onde o salário é calculado sobre um valor fixo por mês; e outra clase FuncSalComissao, onde além do salário fixo haveria um comissão pelas vendas, mas ambos os métodos recebendo os mesmos parâmetros, portanto com a mesma assinatura, e sendo instanciados a partir de Funcionario, para generalizar o método e para que o polimorfismo ocorra.

No começo é de fato difícil diferenciar polimorfismo, de overloading e overriding de metódos.

Entendi! Obrigado .

Overloading é polimorfismo de sobrecarga. Existem diversos tipos de polimorfismo… Os principais são, além do já citado, polimorfismo de herança/subtipo/inclusão, polimorfismo de coerção (cast) e polimorfismo paramétrico (genéricos em Java, templates em C++).

1 curtida

então está correto considera esses metodos como polimorfismo ?

Sim, polimorfismo de sobrecarga.

Obrigado !