Olá, Diogo. Tudo bem?
No exemplo abaixo ocorre a definição da classe e de um método dela que, pelo fato de SistemaInterno não estar herdando de outra classe, é completamente novo e sem relação com qualquer outra classe.
public class SistemaInterno {
public void autentica(Gerente g) {
g.autentica(senha);
}
}
Caso você crie uma classe que herde de SistemaInterno, ela não precisaria definir novamente o método autentica para poder usar, mas caso você defina, o método será sobrescrito e é o novo que valerá quando for usado.
Espero ter ajudado.