Forskellen mellem Extends og Implements i Java med eksempler

Efter artiklen om Java Autoboxing og Unboxing i Java, vil vi lære forskellen mellem Extends og Implements i Java. Begge er de reserverede nøgleord 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 nøgleordet og hvad der er Java implements nøgleordet med eksempler.

Først skal vi gennemgå begrebet Java Autoboxing og Unboxing i detaljer med Techvidvan.

Holder dig opdateret med de nyeste teknologiske trends, Deltag TechVidvan på Telegram

Hvad er extends i Java?

  • Nøgleordet extends i Java er nyttigt, når vi ønsker at arve egenskaber og metoder fra en overordnet klasse i vores børneklasse.
  • Dette extends-nøgleord etablerer arverelationen mellem to klasser.
  • Vi bruger det, mens vi opretter en afledt klasse fra forældreklassen eller opretter en underklasse fra overklassen.
  • Reglen er, at en klasse højst kan udvide én klasse.
  • Når en klasse udvider en anden klasse, kan den tilsidesætte de metoder, der er defineret i en overklasse.
  • Vi bruger også nøgleordet extends, når vi ønsker, at en grænseflade skal udvide eller arve en anden grænseflade.

Før dig detaljeret bekendt med begrebet Java-arvelighed med Techvidvan.

Kode til at forstå nøgleordet extends i Java:

package com.techvidvan.extendsvsimplements;//Parent classclass Country{ String name = "India"; public void display() { System.out.println("This is my country India"); }}//child class extends the parent classclass 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
Bynavnet er: Jaipur
Byen ligger i staten Rajasthan

Hvad er implements i Java?

  • Vi bruger nøgleordet implements, når vi implementerer en grænseflade.
  • En klasse kan implementere en grænseflade ved hjælp af nøgleordet implements.
  • En grænseflade er en abstrakt type i Java, der indeholder en samling af abstrakte metoder. Vi kan ikke instantiere en grænseflade, dvs. 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 metoderne i grænsefladen, skal vi erklære den som abstrakt. Ellers vil compileren give en fejl.
  • Java understøtter ikke multiple inheritances, men vi kan implementere multiple inheritance i vores kode ved at bruge flere interfaces i Java.
  • En interface kan aldrig implementere en anden interface. Grunden er, at hvis grænsefladen vil implementere en anden grænseflade, så skal den definere alle metoderne i 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.

Forbedre din viden om Java-interface i detaljer med Techvidvan.

Kode til at forstå implementering af java implementerer nøgleordet:

package com.techvidvan.extendsvsimplements;//Creating an interfaceinterface MyInterface{ //Declaring abstract methods inside it void displayString(String s); void showNumber(int i);}//Implementing the interface using the implements keywordpublic 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:

Strengens værdi 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 arvestrukturer i Java. Vi vil oprette 3 interfaces: Vi opretter følgende grænseflader: Walkable, Swimmable og Talkable og en klasse HumanBeing, som implementerer alle 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 thempublic 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 nøgleord, lad os nu se java extends vs. implements i detaljer:

Sammenligning af funktioner Extends Implements
Implementation Nøgleordet extends bruges, når en klasse ønsker at arve alle egenskaber fra en anden klasse eller en grænseflade, der ønsker at arve en grænseflade. Vi bruger nøgleordet implements, når vi ønsker, at en klasse skal implementere en grænseflade.
Associeret med Det er associeret med Arv Det er associeret med Abstraktion
Metode En underklasse, der udvider en overordnet klasse, kan overskrive alle de metoder, der findes i den overordnede klasse, eller også kan den ikke overskrive dem. En klasse, der implementerer en grænseflade, skal definere eller levere implementeringen af alle de metoder, der er deklareret i grænsefladen, ellers skal klassen deklareres 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 flere end én grænseflade på samme tid.
Interface En grænseflade kan udvide et vilkårligt antal grænseflader. En grænseflade kan aldrig implementere en anden grænseflade.

Summary

Så afslutningsvis er vi nået til slutningen af artiklen om forskellen mellem extends og implements i java. Vi gennemgik de vigtigste forskelle mellem disse nøgleord. Begge bruger direkte eller indirekte begrebet arv i Java. Men vi kan konkludere, at implementering af en grænseflade giver mere fleksibilitet end udvidelse af en klasse, da vi kan udvide en enkelt klasse, men vi kan implementere flere arvegange i Java. Efter at have læst denne artikel håber jeg, at du endelig har forstået extends vs. implements nøgleordet i Java.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.