A Java Autoboxing és Unboxing Java-ban című cikk után most a kiterjesztések és az implementációk közötti különbséget tanuljuk meg Java-ban. Mindkettő a Java fenntartott kulcsszava, amelyeket arra használunk, hogy egy már létező szülőblokk tulajdonságait az újonnan létrehozott gyermekblokkban örökítsük. Ezeket különböző fogalmak megvalósítására használják a Java-ban. Megtanuljuk, mi az a Java extends kulcsszó és mi az a Java implements kulcsszó példákkal.
Először a Java Autoboxing és Unboxing fogalmát tekintjük át részletesen a Techvidvan segítségével.
Folyamatosan tájékoztatjuk a legújabb technológiai trendekről, csatlakozzon a TechVidvanhoz Telegram
Mi az extends a Java-ban?
- Az extends kulcsszó a Javában akkor hasznos, ha egy szülő osztály tulajdonságait és metódusait szeretnénk örökölni a gyermek osztályunkban.
- Az extends kulcsszó két osztály közötti öröklési kapcsolatot hoz létre.
- Azt használjuk, amikor a szülőosztályból származtatott osztályt hozunk létre, vagy a szuperosztályból alosztályt hozunk létre.
- A szabály az, hogy egy osztály legfeljebb egy osztályt bővíthet.
- Ha egy osztály egy másik osztályt bővít, akkor felülbírálhatja a szuperosztályban definiált metódusokat.
- Az extends kulcsszót akkor is használjuk, ha azt akarjuk, hogy egy interfész kiterjesszen vagy örököljön egy másik interfészt.
A Techvidvan segítségével részletesen megismerkedhetünk a Java öröklődés fogalmával.
Kód az extends kulcsszó megértéséhez Java-ban:
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"); }}
Kimenet:
A város neve: Jaipur
A város Rajasthan államban található
Mi az Implements Java-ban?
- Az implements kulcsszót használjuk egy interfész implementálásakor.
- Egy osztály az implements kulcsszóval implementálhat egy interfészt.
- Az interfész egy absztrakt típus Java-ban, amely absztrakt metódusok gyűjteményét tartalmazza. Egy interfészt nem tudunk példányosítani, azaz nem tudunk objektumokat létrehozni egy interfészből.
- Amikor egy osztály implementál egy interfészt, akkor meg kell határoznia az összes metódust, amelyek az interfészen belül vannak, megadva az egyes metódusok implementációját.
- Ha az osztály, amely egy interfészt implementál, nem definiálja vagy nem tartalmazza az interfész összes metódusának implementációját, akkor absztraktnak kell nyilvánítanunk. Ellenkező esetben a fordító hibát ad.
- A Java nem támogatja a többszörös öröklést, de a többszörös öröklést megvalósíthatjuk a kódunkban, ha több interfészt használunk a Java-ban.
- Egy interfész soha nem implementálhat egy másik interfészt. Ennek az az oka, hogy ha az interfész egy másik interfészt fog implementálni, akkor annak az interfésznek az összes metódusát meg kell határoznia, amelyet implementál, de az interfésznek nem lehet konkrét metódusa, ezért egy interfész nem tud egy másik interfészt implementálni a Javában.
A Techvidvan segítségével részletesen fejlesztheti tudását a Java interfészről.
Kód a Java implements kulcsszó végrehajtásának megértéséhez:
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); }}
Kimenet:
Az egész szám értéke: 20
Példa több interfészre
Most egy olyan példát fogunk látni, amelyben egy osztály egyszerre több interfészt is megvalósít, és így többszörös öröklést hoz létre a Java-ban. Három interfészt fogunk létrehozni: Walkable, Swimmable és Talkable, és egy HumanBeing osztályt, amely mind a 3 interfészt megvalósítja.
1. interfész: Walkable.java
package com.techvidvan.extendsvsimplements;public interface Walkable { public void walk();}
2. interface: Swimmable.java
package com.techvidvan.extendsvsimplements;public interface Swimmable{ public void swim();}
3. interface: Talkable.java
package com.techvidvan.extendsvsimplements;public interface Talkable { public void talk();}
4. Class: 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(); }}
Kimenet:
tudok úszni
tudok beszélni
Difference between Extends and Implements in Java
Láttuk a példákat mindkét kulcsszóra, nézzük most részletesen a java extends vs implements:
Összehasonlító jellemzők | Extends | Implements |
Implementation | Az extends kulcsszót akkor használjuk, ha egy osztály egy másik osztály összes tulajdonságát vagy egy interfész egy interfészt akar örökölni. | Az implements kulcsszót akkor használjuk, ha azt akarjuk, hogy egy osztály implementáljon egy interfészt. |
Az Inheritance | Az Abstraction | |
Method | A szülőosztályt kiterjesztő gyermekosztály vagy felülírja a szülőosztályban található összes metódust, vagy nem. | Az interfészt megvalósító osztálynak meg kell határoznia vagy biztosítania kell az interfészben deklarált összes metódus megvalósítását, különben az osztályt absztraktnak kell deklarálni. |
Class | Egy alosztály vagy egynél több alosztály egyszerre csak egy szülőosztályt bővíthet. | Egy osztály egyszerre egy vagy több interfészt is megvalósíthat. |
Interfész | Egy interfész tetszőleges számú interfészt bővíthet. | Egy interfész soha nem implementálhat más interfészt. |
Összefoglaló
Így végezetül a cikk végére értünk az extends és implements közötti különbségről a java-ban. Végigvettük a legfontosabb különbségeket e kulcsszavak között. Mindkettő közvetlenül vagy közvetve használja az öröklés koncepcióját a Java-ban. De megállapíthatjuk, hogy egy interfész megvalósítása nagyobb rugalmasságot biztosít, mint egy osztály kiterjesztése, mivel egyetlen osztályt bővíthetünk, de több öröklést is megvalósíthatunk a Java-ban. Remélem, hogy a cikk elolvasása után végre megértette az extends vs. implements kulcsszót a Java-ban.