java – Implementa vs. Extiende. ¿Cuándo usar? ¿Cual es la diferencia?

Implementos vs. Extensiones. ¿Cuándo usar? ¿Cual es la diferencia?

Lo siento por una pregunta tan básica. Busqué esto y leí un par de artículos, pero no lo entiendo bien.

¿Puede alguien explicar en un lenguaje fácil de entender o un enlace a algún artículo?

Mejor respuesta
Extiende es para extender una clase.

implementos es para implementar una interfaz

La diferencia entre una interfaz y una clase regular es que en una interfaz no puede implementar ninguno de los métodos declarados. Solo la clase que \”implementa\” la interfaz puede implementar los métodos. El equivalente en C de una interfaz sería una clase abstracta (no EXACTAMENTE la misma, sino más o menos).

Además, Java no admite herencia múltiple para las clases. Esto se resuelve utilizando múltiples interfaces.

 public interface ExampleInterface{
    public void do();
    public String doThis(int number);
 }

 public class sub implements ExampleInterface{
     public void do(){
       //specify what must happen
     }

     public String doThis(int number){
       //specfiy what must happen
     }
 }

ahora extendiendo una clase

 public class SuperClass{
    public int getNb(){
         //specify what must happen
        return 1;
     }

     public int getNb2(){
         //specify what must happen
        return 2;
     }
 }

 public class SubClass extends SuperClass{
      //you can override the implementation
      @Override
      public int getNb2(){
        return 3;
     }
 }

en este caso

  Subclass s = new SubClass();
  s.getNb(); //returns 1
  s.getNb2(); //returns 3

  SuperClass sup = new SuperClass();
  sup.getNb(); //returns 1
  sup.getNb2(); //returns 2

Le sugiero que haga más investigación sobre el enlace dinámico, el polimorfismo y la herencia general en la programación orientada a objetos.

Por favor indique la dirección original:java – Implementa vs. Extiende. ¿Cuándo usar? ¿Cual es la diferencia? - Código de registro