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:
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:
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 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.