Po artykule Autoboxing i Unboxing w Javie, poznamy różnicę pomiędzy extends i implements w Javie. Oba są zarezerwowanymi słowami kluczowymi w Javie, których używamy do dziedziczenia cech już istniejącego bloku rodzica w nowo utworzonym bloku dziecka. Są one używane do implementacji różnych koncepcji w Javie. Dowiemy się, co to jest Java extends słowo kluczowe i co to jest Java implements słowo kluczowe z przykładami.
Początkowo, zrewidujmy koncepcję Java Autoboxing i Unboxing w szczegółach z Techvidvan.
Utrzymując się na bieżąco z najnowszymi trendami technologicznymi, Dołącz TechVidvan na Telegramie
Co to jest extends w Javie?
- Słowo kluczowe extends w Javie jest przydatne, gdy chcemy dziedziczyć właściwości i metody klasy nadrzędnej w naszej klasie dziecięcej.
- To słowo kluczowe extends ustanawia relację dziedziczenia między dwiema klasami.
- Używamy go podczas tworzenia klasy pochodnej z klasy nadrzędnej lub tworzenia podklasy z nadklasy.
- Zasada jest taka, że klasa może rozszerzyć maksymalnie tylko jedną klasę.
- Gdy klasa rozszerza inną klasę, może nadpisać metody zdefiniowane w nadklasie.
- Słowa kluczowego extends używamy również, gdy chcemy, aby interfejs rozszerzał lub dziedziczył po innym interfejsie.
Zapoznaj się szczegółowo z koncepcją dziedziczenia w Javie za pomocą Techvidvan.
Kod, aby zrozumieć słowo kluczowe extends w Javie:
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"); }}
Wyjście:
Nazwa miasta to: Jaipur
Miasto występuje w stanie Rajasthan
Co to jest implementacja w Javie?
- Używamy słowa kluczowego implements podczas implementacji interfejsu.
- Klasa może implementować interfejs za pomocą słowa kluczowego implements.
- Interfejs jest typem abstrakcyjnym w Javie, który zawiera kolekcję abstrakcyjnych metod. Nie możemy instancjonować interfejsu, czyli nie możemy tworzyć obiektów z interfejsu.
- Kiedy klasa implementuje interfejs, musi zdefiniować wszystkie metody, które są obecne wewnątrz interfejsu, dostarczając implementację każdej z metod.
- Jeśli klasa, która implementuje interfejs, nie definiuje lub nie zawiera implementacji wszystkich metod interfejsu, wtedy musimy zadeklarować ją jako abstrakcyjną. W przeciwnym razie kompilator poda błąd.
- Java nie obsługuje wielokrotnego dziedziczenia, ale możemy zaimplementować wielokrotne dziedziczenie w naszym kodzie poprzez użycie wielu interfejsów w Javie.
- Interfejs nigdy nie może implementować innego interfejsu. Powodem jest to, że jeśli interfejs zaimplementuje inny interfejs, wtedy musi zdefiniować wszystkie metody interfejsu, który implementuje, ale interfejs nie może mieć żadnych konkretnych metod, dlatego interfejs nie może zaimplementować innego interfejsu w Javie.
Zwiększ swoją wiedzę na temat interfejsu Java w szczegółach z Techvidvan.
Kod, aby zrozumieć implementację java implements słowo kluczowe:
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); }}
Wyjście:
Wartość całkowita to: 20
Przykład implementacji wielu interfejsów
Zobaczymy teraz przykład, w którym jedna klasa implementuje więcej niż jeden interfejs w tym samym czasie i dlatego ustanawia wiele dziedziczeń w Javie. Stworzymy 3 interfejsy: Walkable, Swimmable i Talkable oraz jedną klasę HumanBeing, która implementuje wszystkie te 3 interfejsy.
1. interfejs: Walkable.java
package com.techvidvan.extendsvsimplements;public interface Walkable { public void walk();}
2. interfejs: Swimmable.java
package com.techvidvan.extendsvsimplements;public interface Swimmable{ public void swim();}
3. interfejs: Talkable.java
package com.techvidvan.extendsvsimplements;public interface Talkable { public void talk();}
4. klasa: 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(); }}
Wyjście:
I can swim
I can talk
Różnica między Extends i Implements w Javie
Widzieliśmy przykłady obu słów kluczowych, zobaczmy teraz szczegółowo java extends vs implements:
Cechy porównawcze | Extends | Implements |
Implementation | Słowo kluczowe extends jest używane, gdy klasa chce dziedziczyć wszystkie właściwości z innej klasy lub interfejsu, który chce dziedziczyć interfejs. | Słowa kluczowego implements używamy, gdy chcemy, aby klasa implementowała interfejs. |
Związane z | Związane jest z dziedziczeniem | Związane jest z abstrakcją |
Metody | Klasa potomna, która rozszerza klasę nadrzędną, może, ale nie musi, nadpisać wszystkie metody obecne w klasie nadrzędnej. | Klasa, która implementuje interfejs, musi zdefiniować lub zapewnić implementację wszystkich metod zadeklarowanych w interfejsie, w przeciwnym razie klasa powinna być zadeklarowana jako abstrakcyjna. |
Klasa | Podklasa lub więcej niż jedna podklasa może rozszerzyć tylko jedną klasę nadrzędną w tym samym czasie. | Klasa może implementować jeden lub więcej niż jeden interfejs w tym samym czasie. |
Interfejs | Interfejs może rozszerzać dowolną liczbę interfejsów. | Interfejs nigdy nie może implementować żadnego innego interfejsu. |
Podsumowanie
Więc podsumowując, dochodzimy do końca artykułu o różnicach pomiędzy extends i implements w javie. Przeszliśmy przez najważniejsze różnice pomiędzy tymi słowami kluczowymi. Oba z nich bezpośrednio lub pośrednio wykorzystują koncepcję dziedziczenia w Javie. Możemy jednak stwierdzić, że implementacja interfejsu zapewnia większą elastyczność niż rozszerzenie klasy, ponieważ możemy rozszerzyć jedną klasę, ale możemy zaimplementować wiele dziedziczeń w Javie. Mam nadzieję, że po przeczytaniu tego artykułu, w końcu zrozumiałeś słowo kluczowe extends vs implements w Javie.