Java >> Java tutorial >  >> Tag >> extends

Forskellen mellem Extends og Implements i Java med eksempler

Efter artiklen om Java Autoboxing og Unboxing i Java lærer vi forskellen mellem forlængelser og implementerer i java . Begge er de reserverede søgeord i Java, som vi bruger til at arve funktionerne i en allerede eksisterende overordnet blok i den nyoprettede underordnede blok.

De bruges til at implementere forskellige koncepter i Java. Vi vil lære, hvad der er Java extends søgeord, og hvad er Java implementerer nøgleord med eksempler.

Hold dig opdateret med de nyeste teknologitrends, Deltag i TechVidvan på Telegram

Hvad er extends i Java?

  • Nøgleordet extends i Java er nyttigt, når vi ønsker at arve egenskaberne og metoderne for en overordnet klasse i vores underklasse.
  • Dette udvider søgeordet etablerer arveforholdet mellem to klasser.
  • Vi bruger det, mens vi opretter en afledt klasse fra den overordnede klasse eller opretter en underklasse fra superklassen.
  • Reglen er, at en klasse maksimalt kan udvide en klasse.
  • Når en klasse udvider en anden klasse, kan den tilsidesætte de metoder, der er defineret i en superklasse.
  • Vi bruger også søgeordet extends, når vi ønsker, at en grænseflade skal udvide eller arve en anden grænseflade.

Kode til at forstå extends-søgeordet i Java:

package com.techvidvan.extendsvsimplements;
//Parent class
class Country
{
    String name = "India";
    public void display()
    {
        System.out.println("This is my country India");
    }
}
//child class extends the parent class
class City extends Country
{   
    // defining additional properties to the derived class
    String state = “Rajasthan”;
    String city = “Jaipur”;
}
public class ExtendsDemo
{
    public static void main(String args[])
    {
        City obj=new City();
        obj.display();
        System.out.println("Name of the city is: " + obj.name);
        System.out.println("City is present in " + obj.state + “state”);
    }
}

Output:

Dette er mit land Indien
Byens navn er:Jaipur
Byen er til stede i staten Rajasthan

Hvad er Implements i Java?

  • Vi bruger nøgleordet implementerer, mens vi implementerer en grænseflade.
  • En klasse kan implementere en grænseflade ved hjælp af implements nøgleordet.
  • En grænseflade er en abstrakt type i Java der indeholder en samling abstrakte metoder. Vi kan ikke instansiere en grænseflade, det vil sige, vi kan ikke oprette objekter fra en grænseflade.
  • Når en klasse implementerer en grænseflade, skal den definere alle de metoder, der er til stede i grænsefladen, ved at levere implementeringen af ​​hver af metoderne.
  • Hvis klassen, der implementerer en grænseflade, ikke definerer eller ikke indeholder implementering af alle grænsefladens metoder, så skal vi erklære den som abstrakt. Ellers vil compileren give en fejl.
  • Java understøtter ikke flere nedarvninger, men vi kan implementere flere nedarvninger i vores kode ved at bruge flere grænseflader i Java.
  • En grænseflade kan aldrig implementere en anden grænseflade. Årsagen er, at hvis grænsefladen vil implementere en anden grænseflade, så skal den definere alle metoderne for den grænseflade, som den implementerer, men grænsefladen kan ikke have nogen konkrete metoder, derfor kan en grænseflade ikke implementere en anden grænseflade i Java.

Kode til at forstå implementering af java implements søgeord:

package com.techvidvan.extendsvsimplements;
//Creating an interface
interface MyInterface
{
  //Declaring abstract methods inside it
  void displayString(String s);
  void showNumber(int i);
}
//Implementing the interface using the implements keyword
public class MyClass implements MyInterface
{
  //Implementing all the methods declared in the interface
  public void displayString(String s)
  {
    System.out.println("The string value is: " +s);
  }
  public void showNumber(int i)
  {
    System.out.println("The integer value is: " +i);
  }
  public static void main(String args[]) 
  {
    MyClass obj = new MyClass();
    obj.displayString("TechVidvan");
    obj.showNumber(20);
  }
}

Output:

Strengværdien er:TechVidvan
Heltalsværdien er:20

Eksempel på flere grænseflader

Nu vil vi se et eksempel, hvor en klasse implementerer mere end én grænseflade på samme tid og derfor etablerer flere arv i Java. Vi vil skabe 3 grænseflader:Walkable, Swimmable og Talkable og en klasse HumanBeing, der implementerer alle de 3 grænseflader.

1. grænseflade:Walkable.java
package com.techvidvan.extendsvsimplements;
public interface Walkable 
{
  public void walk();
}
2. grænseflade:Swimmable.java
package com.techvidvan.extendsvsimplements;
public interface Swimmable
{
  public void swim();
}
3. grænseflade:Talkable.java
package com.techvidvan.extendsvsimplements;
public interface Talkable 
{
  public void talk();
}
4. Klasse:HumanBeing.java
package com.techvidvan.extendsvsimplements;
\\To implement multiple interfaces we must use commas to separate them
public class HumanBeing  implements Walkable, Swimmable, Talkable
{
  @Override
  public void walk()
  {
    System.out.println("I can walk");
  }
  @Override
  public void swim()
  {
    System.out.println("I can swim");
  }
  @Override
  public void talk()
  {
    System.out.println("I can talk");
  }
  public static void main(String args[])
  {
    HumanBeing human= new HumanBeing();
    human.walk();
    human.swim();
    human.talk();
  }
}

Output:

Jeg kan gå
Jeg kan svømme
Jeg kan tale

Forskellen mellem Extends og  Implements i Java

Vi har set eksemplerne på begge søgeord, lad os nu se java extends vs implements i detaljer:

Sammenligningsfunktioner Udvider Implementer
Implementering Søgeordet udvider bruges, når en klasse ønsker at arve alle egenskaberne fra en anden klasse eller en grænseflade, der ønsker at arve en grænseflade. Vi bruger implementerne nøgleord, når vi vil have en klasse til at implementere en grænseflade.
Knyttet til Det er forbundet med arv Det er forbundet med abstraktion
Metode Den underordnede klasse, der udvider en overordnet klasse, kan eller kan ikke tilsidesætte alle de metoder, der findes i den overordnede klasse. Klassen, der implementerer en grænseflade, skal definere eller levere implementeringen af ​​alle de metoder, der er erklæret i grænsefladen, ellers skal klassen erklæres som abstrakt.
Klasse En underklasse eller mere end én underklasse kan kun udvide én overordnet klasse på samme tid. En klasse kan implementere en eller mere end én grænseflade på samme tid.
Grænseflade En grænseflade kan udvide et vilkårligt antal grænseflader. En grænseflade kan aldrig implementere nogen anden grænseflade.

Oversigt

Så afslutningsvis kommer vi til slutningen af ​​artiklen om forskel mellem udvider og implementerer i java. Vi gennemgik de store forskelle mellem disse søgeord. Begge bruger direkte eller indirekte begrebet arv i Java.

Men vi kan konkludere, at implementering af en grænseflade giver mere fleksibilitet end at udvide en klasse, da vi kan udvide en enkelt klasse, men vi kan implementere flere nedarvninger i Java.

Håber, efter at have læst denne artikel, har du måske endelig forstået extends vs implements keyword i Java.

Tak fordi du læste vores artikel. Del din feedback gennem kommentarsektionen nedenfor.

God læring 🙂


Java tag