Ajudaaa com INTERFACES!

Boa noite, pessoal! Eu estou com problemas no entendimento desse método getTratamento() da classe Autoridade. Por favor, me expliquem a lógica, também, que foi utilizada na classe TesteAutoridade.

public interface FormatadorNome {

	String formatarNome(String nome, String sobrenome);

}

public class Autoridade{

	private String nome;
	private String sobrenome;
	public FormatadorNome fn;
	
	public Autoridade(String nome, String sobrenome, FormatadorNome fn) {
		this.nome = nome;
		this.sobrenome = sobrenome;
		this.fn = fn;
	}

	public String getTratamento() {
		return fn.formatarNome(nome, sobrenome);
	}
}

public class Informal implements FormatadorNome{

	@Override
	public String formatarNome(String nome, String sobrenome) {
		return nome;
	}
}

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class TesteAutoridade {

	@Test
	void testeInformal() {
		FormatadorNome f = new Informal();
		Autoridade a = new Autoridade("Pedro", "Cabral", f);
		assertEquals("Pedro", a.getTratamento());
		
	}

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.