Se você for passar um valor numérico para um parâmetro de método, você pode querer que o parâmetro do método seja do tipo double, para que você possa passar dados byte, int, long, float e double para o parâmetro.
Se o parâmetro de um método for um tipo de interface , podemos passar uma referência à instância de qualquer classe que implementa a interface para o parâmetro interface, e então o parâmetro interface pode chamar de volta o método de interface implementado pela classe.
Por exemplo:
interfaceSpeakHello{voidspeakHello();}classChineseimplementsSpeakHello{publicvoidspeakHello(){System.out.println(Os chineses estão acostumados com saudações: Olá, você comeu?);}}classEnglishimplementsSpeakHello{publicvoidspeakHello(){System.out.println(British Custom saudação: Olá, o tempo está bom!);}} classKindHello{publicvoidlookHello(SpeakHellohello){//Parâmetro do tipo de interface hello.speakHello();//retorno de chamada da interface}} publicclassMain{publicstaticvoidmain(Stringargs[]){KindHellokindHello=newKindHello ( );kindHello.lookHello(newChinese());kindHello.lookHello(newEnglish());}}
Os resultados da execução são os seguintes:
Os chineses estão acostumados com saudações: Olá, você já comeu? Os britânicos estão acostumados com saudações: Olá, o tempo está bom!
Nota: Se várias outras classes, como chinês e inglês, forem adicionadas ao arquivo de origem, a classe KindHello não precisará ser modificada de forma alguma.