La documentación oficial No me queda claro extraer la diferencia real entre ellos. ¿Alguien podría dar un ejemplo o escenario para facilitar la comprensión?

enter image description here

0
Luk Aron 23 oct. 2019 a las 13:54

1 respuesta

La mejor respuesta

Considere el siguiente código de ejemplo. Su cursor está en m en m.aMethod(); o en aMethod en la misma línea.

Main.java

public class Main implements MyInterface {

  public static final void main(String args []) {
    MyInterface m = new Main();
//              ^1

    m.aMethod();
//  ^ Declarations will bring you to 1, the declaration of the variable (m)
//    Type Declaration will bring you to 2, the declaration of the type of the variable (MyInterface)
    m.aMethod();
//       ^ Declaration will bring you to 3, the declaration of the method in the type (MyInterface) of the variable
//         Implementation(s) will bring you to 4, the declaration of the method implementing the interface method
  }

  public void aMethod() {
//            ^4
  }
}

MyInterface.java

public interface MyInterface {
//               ^2
  public void aMethod();
//            ^3
}
3
Roger Gustavsson 23 oct. 2019 a las 11:24