Étend vs implémente en Java

Rupam Yadav 12 octobre 2023
  1. Hériter d’une classe en utilisant le mot-clé extends en Java
  2. Hériter d’une interface à l’aide du mot-clé implements en Java
Étend vs implémente en Java

Pour réutiliser les propriétés et les comportements d’une classe parente donnée en Java, nous utilisons le concept d’héritage qui est une partie importante d’un langage de programmation orienté objet. L’idée derrière cela est la réutilisation du code. Les mots-clés implements et extends sont utilisés pour créer une nouvelle classe en Java qui possède les attributs de la classe parent.

Nous pouvons avoir une meilleure compréhension des mots-clés extends et implements en utilisant le tableau ci-dessous.

Définition Mise en œuvre Classer Interface Méthodes
extends Lorsqu’une sous-classe (enfant) extends une classe de base (parente), elle permet à la sous-classe d’hériter du code défini dans la classe de base. Une classe peut hériter d’une autre classe. Une interface peut hériter d’une autre interface en utilisant le mot-clé extends. Une classe ne peut étendre qu’une seule classe. N’importe quel nombre d’interfaces peut être étendu par une interface. La classe de sous-classe étend une classe parente peut ou non remplacer toutes les méthodes de la classe de base.
implements Le mot clé implements est utilisé pour implémenter une interface. Une interface contient des méthodes abstraites. Le corps de la méthode est défini dans la classe qui l’implémente. En utilisant le mot-clé implements, une classe peut implémenter une interface. Plusieurs interfaces peuvent être implémentées par une classe. Une interface ne peut jamais implémenter une autre interface. La classe implémentant une interface doit implémenter toutes les méthodes de l’interface.

Hériter d’une classe en utilisant le mot-clé extends en Java

Dans le code ci-dessous, nous avons un Parent, qui est la classe de base, et Child comme la sous-classe. La classe Child étend la classe Parent, ce qui signifie que la classe Child a désormais accès aux champs et méthodes définis à l’intérieur de la classe Parent.

Dans notre classe Test, nous créons un objet de la classe sous-classe child et appelons la méthode displayNumber() dessus. La méthode displayString(), qui est définie à l’intérieur de la classe parent, peut être exécutée en l’appelant sur le même objet child. Par conséquent, il remplit l’objectif de réutilisation du code.

public class Test {
  public static void main(String args[]) {
    Child child = new Child();
    System.out.println("Calling Child class method : " + child.displayNumber());
    System.out.println("Calling Parent class method from child : " + child.displayString());
  }
}
class Parent {
  String str = "Hello there!";
  public String displayString() {
    return str;
  }
}
class Child extends Parent {
  int number = 25;
  public int displayNumber() {
    return number;
  }
}

Production:

Calling Child class method : 25
Calling Parent class method from child : Hello there!

Hériter d’une interface à l’aide du mot-clé implements en Java

Nous avons deux interfaces, Cat et Dog, dans le code ci-dessous, chacune contenant une méthode abstraite à l’intérieur. Une classe Animals implémente les deux interfaces, elle doit donc implémenter la méthode définie dans les interfaces.

Par conséquent, la classe Animals a implémenté les deux interfaces et défini leurs comportements, ce qui est tout l’objectif de l’interface en Java.

interface Cat {
  public void meow();
}

interface Dog {
  public void bark();
}

class Animals implements Dog, Cat {
  @Override
  public void meow() {
    System.out.println("Cat meows");
  }

  @Override
  public void bark() {
    System.out.println("Dog barks");
  }
}
public class Test1 {
  public static void main(String args[]) {
    Animals animals = new Animals();
    animals.bark();
    animals.meow();
  }
}

Production

Dog barks Cat meows
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn