Efter artikeln om Java Autoboxing och Unboxing i Java ska vi lära oss skillnaden mellan Extends och Implements i Java. Båda är reserverade nyckelord i Java som vi använder för att ärva funktionerna hos ett redan befintligt föräldrablock i det nyskapade barnblocket. De används för att implementera olika koncept i Java. Vi kommer att lära oss vad som är Java extends nyckelordet och vad som är Java implements nyckelordet med exempel.
Först ska vi se över begreppet Java Autoboxing och Unboxing i detalj med Techvidvan.
Håller dig uppdaterad med de senaste tekniktrenderna, gå med i TechVidvan på Telegram
Vad är extends i Java?
- Nyckelordet extends i Java är användbart när vi vill ärva egenskaper och metoder från en överordnad klass i vår underordnade klass.
- Detta extends-nyckelord etablerar arvsförhållandet mellan två klasser.
- Vi använder det när vi skapar en härledd klass från den överordnade klassen eller när vi skapar en underklass från den överordnade klassen.
- Regeln är att en klass kan förlänga högst en klass.
- När en klass förlänger en annan klass kan den åsidosätta de metoder som definierats i en överklass.
- Vi använder också nyckelordet extends när vi vill att ett gränssnitt ska förlänga eller ärva ett annat gränssnitt.
Fördjupa dig i begreppet Javas arv i detalj med Techvidvan.
Kod för att förstå nyckelordet 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"); }}
Utmatning:
Stadens namn är: Jaipur
Staden ligger i delstaten Rajasthan
Vad är implements i Java?
- Vi använder nyckelordet implements när vi implementerar ett gränssnitt.
- En klass kan implementera ett gränssnitt med hjälp av nyckelordet implements.
- Ett gränssnitt är en abstrakt typ i Java som innehåller en samling abstrakta metoder. Vi kan inte instantiera ett gränssnitt det vill säga vi kan inte skapa objekt från ett gränssnitt.
- När en klass implementerar ett gränssnitt måste den definiera alla metoder som finns i gränssnittet genom att tillhandahålla implementeringen av var och en av metoderna.
- Om klassen som implementerar ett gränssnitt inte definierar eller inte innehåller implementering av alla metoderna i gränssnittet, måste vi deklarera den som abstrakt. Annars kommer kompilatorn att ge ett fel.
- Java stöder inte multipel arv, men vi kan implementera multipel arv i vår kod genom att använda flera gränssnitt i Java.
- Ett gränssnitt kan aldrig implementera ett annat gränssnitt. Anledningen är att om gränssnittet kommer att implementera ett annat gränssnitt måste det definiera alla metoder i det gränssnitt som det implementerar, men gränssnittet kan inte ha några konkreta metoder, därför kan ett gränssnitt inte implementera ett annat gränssnitt i Java.
Förbättra dina kunskaper om Javas gränssnitt i detalj med Techvidvan.
Kod för att förstå implementering av java implementerar nyckelordet:
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); }}
Uppgift:
Heltalsvärdet är: 20
Exempel på flera gränssnitt
Nu ska vi se ett exempel där en klass implementerar mer än ett gränssnitt samtidigt och därför etablerar flera arv i Java. Vi kommer att skapa tre gränssnitt: Vi skapar tre gränssnitt: Walkable, Swimmable och Talkable och en klass HumanBeing som implementerar alla tre gränssnitten.
1: Walkable.java
package com.techvidvan.extendsvsimplements;public interface Walkable { public void walk();}
2: Swimmable.java
package com.techvidvan.extendsvsimplements;public interface Swimmable{ public void swim();}
3. gränssnitt: Talkable.java
package com.techvidvan.extendsvsimplements;public interface Talkable { public void talk();}
4. Klass: 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:
Jag kan simma
Jag kan prata
Skillnaden mellan Extends och Implements i Java
Vi har sett exemplen på båda nyckelorden, låt oss nu se java extends vs implements i detalj:
Funktioner för jämförelse | Extends | Implements |
Implementation | Nyckelordet extends används när en klass vill ärva alla egenskaper från en annan klass eller ett gränssnitt som vill ärva ett gränssnitt. | Vi använder nyckelordet implements när vi vill att en klass ska implementera ett gränssnitt. |
Associerat med | Det är associerat med arv | Det är associerat med abstraktion |
Metod | Den underordnade klassen som utökar en överordnad klass kan eller inte kan överskriva alla metoder som finns i den överordnade klassen. | En klass som implementerar ett gränssnitt måste definiera eller tillhandahålla implementationen av alla metoder som deklareras i gränssnittet, annars ska klassen deklareras som abstrakt. |
Klass | En underklass eller mer än en underklass kan förlänga endast en föräldraklass samtidigt. | En klass kan implementera ett eller flera än ett gränssnitt samtidigt. |
Interface | Ett gränssnitt kan förlänga ett obegränsat antal gränssnitt. | Ett gränssnitt kan aldrig implementera något annat gränssnitt. |
Sammanfattning
Så avslutningsvis kommer vi till slutet av artikeln om skillnaden mellan extends och implements i java. Vi gick igenom de viktigaste skillnaderna mellan dessa nyckelord. Båda använder direkt eller indirekt begreppet arv i Java. Men vi kan dra slutsatsen att implementering av ett gränssnitt ger mer flexibilitet än förlängning av en klass eftersom vi kan förlänga en enda klass men vi kan implementera flera arv i Java. Efter att ha läst den här artikeln hoppas jag att du äntligen har förstått extends vs. implements nyckelordet i Java.