Omówienie dziedziczenia w Javie
W przeciwieństwie do innych języków programowania, takich jak C, Java oferuje mechanizm, za pomocą którego elementy danych i metody jednej klasy są dziedziczone przez inną klasę. Ten proces jest nazywany dziedziczeniem w Javie. Aby dziedziczyć po klasie, używane jest słowo kluczowe „extends”. Dziedziczenie w Javie pozwala na ponowne użycie kodu, dzięki czemu klasa musi tylko napisać unikalne funkcje, a resztę kodu można rozszerzyć na inną klasę. Klasa dziedzicząca z innej klasy jest znana jako podklasa lub klasa potomna, a dziedziczona klasa jest znana jako klasa nadrzędna lub nadklasa. Składnia, typy i implementacja dziedziczenia zostaną omówione w poniższych sekcjach.
Rodzaje dziedziczenia w Javie
Dziedziczenie oznacza relację IS-A, która jest inaczej znana jako relacja rodzic-dziecko. Rodzic i dziecko są już wspomniani w części wstępnej.
Zanim przejdziemy do rodzajów dziedziczenia w java, najpierw zobaczmy składnię dziedziczenia.
Składnia:
class apple extends fruit
(
//methods and fields
)
Jabłko to podklasa, a owoc to klasa rodzicielska. Oznacza to, że jabłko ma pewne unikalne właściwości, a także ma właściwości owocu.
Istnieją 4 różne rodzaje dziedziczenia w Javie.
- Pojedyncze dziedzictwo
- Dziedziczenie wielopoziomowe
- Dziedziczenie hierarchiczne
- Wielokrotne dziedziczenie (za pomocą interfejsów)
Zobaczmy teraz każdy z nich szczegółowo.
1. Pojedyncze dziedzictwo
Klasa, która rozszerza tylko jedną klasę. W poniższym przykładzie jabłko klasowe rozszerza owoce klasowe.
tj. Fruit to nadklasa, a Apple to podklasa, która rozszerza właściwości i zachowanie klasy Fruit.
Poniżej przedstawiono demonstrację pojedynczego dziedziczenia w Javie.
Kod:
//Java program to demonstrate Single Inheritance
//parent class
class fruit (
public void taste()
(
System.out.println("Fruits are sweet");
)
)
//child class of fruit
class apple extends fruit
(
public void shape()
(
System.out.println("Apple is round");
)
)
public class InheritanceExample
(
public static void main(String() args) (
apple fr = new apple(); //object of child class
fr.taste(); //call method of parent class
fr.shape(); //call method of child class
)
)
Wynik:
2. Dziedziczenie wielopoziomowe
W tego rodzaju dziedziczeniu klasa zostanie rozszerzona z innej klasy, a klasa pochodna będzie działać jako klasa podstawowa dla innej klasy.
Na przykład na rysunku czterokołowiec klasy jest klasą nadrzędną, a samochód jest pochodną klasą czterokołowca. Jednocześnie samochód klasy może być klasą podstawową dla klasy Maruti.
Kod:
//Java program to demonstrate Multiple Inheritance
//parent class
class fourwheeler (
public void wheels()
(
System.out.println("I have 4 wheels");
)
)
//child class of fourwheeler and parent of maruti
class car extends fourwheeler
(
public void type()
(
System.out.println("I'm a car");
)
)
//child class of car class
class maruti extends car
(
public void comp()
(
System.out.println("I'm maruti");
)
)
public class InheritanceExample
(
public static void main(String() args) (
maruti fr = new maruti(); //object of child class
fr.wheels();
fr.type();
fr.comp();
)
)
Wynik:
3. Dziedziczenie hierarchiczne
W dziedziczeniu hierarchicznym klasa podstawowa ma więcej niż jedną klasę potomną, co oznacza, że właściwości klasy są nabywane przez różne klasy.
Na przykład pojazd klasy ma podklasy samochody, motocykle, skutery.
Kod:
//Java program to demonstrate Hierarchical Inheritance
//parent class
class vehicle (
public void wheels()
(
System.out.println("I have wheels");
)
)
//first child class of vehicle class
class bike extends vehicle
(
public void countwl()
(
System.out.println("I am a bike and has 2 wheels");
)
)
//second child class of vehicle class
class car extends vehicle
(
public void countwlc()
(
System.out.println("I am a car and has 4 wheels");
)
)
//third child class of vehicle class
class scooter extends vehicle
(
public void countwls()
(
System.out.println("I am a scooter and has 2 wheels");
)
)
public class InheritanceExample
(
public static void main(String() args) (
scooter sc = new scooter(); //object of scooter class
sc.wheels();
sc.countwls();
car c = new car(); //object of car class
c.wheels();
c.countwlc();
bike b= new bike();//object of bike class
b.wheels();
b.countwl();
)
)
Wynik:
4. Wielokrotne dziedziczenie
Wielokrotne dziedziczenie w java jest rodzajem dziedziczenia, w którym klasa ma więcej niż jedną klasę nadrzędną.
Na przykład klasa C nabywa właściwości zarówno klasy A, jak i klasy B.
Ale w Javie wielokrotne dziedziczenie można osiągnąć tylko przy użyciu interfejsów.
Załóżmy, że zaimplementowano wiele dziedziczeń, podobnie jak inne rodzaje dziedziczenia, błąd kompilacji może wystąpić w następujący sposób.
Kod:
//Java program to demonstrate multiple Inheritance
//parent class
class A
(
public void hh()
(
System.out.println("A is working");
)
)
class B
(
public void hh()
(
System.out.println("B is working");
)
)
class C extends A, B
(
//code for class c
)
public class InheritanceExample
(
public static void main(String() args) (
C sc = new C(); //object of C class
C.hh();
)
)
W tym przypadku dane wyjściowe nie będą wyświetlane, ponieważ zawierają błąd czasu kompilacji.
Znaczenie dziedziczenia w Javie
- Ponowne użycie kodu: Dziedziczenie pomaga w ograniczeniu przepisywania kodu. tj. Kod może być ponownie wykorzystany przez inne klasy, a klasa potomna musi jedynie napisać własne unikalne właściwości. Zmniejsza to czasochłonność i złożoność kodu.
- W przypadku przesłonięcia metody: metoda, która jest już obecna w klasie nadrzędnej, jest zadeklarowana przez klasę podrzędną, a następnie jest znana jako przesłonięcie metody.
Składnia:
final class A
(
. . .
)
Class B extends A
(
. . .
)
W takim przypadku zostanie wygenerowany błąd, który mówi „Nie można dziedziczyć po końcowym A”.
Wniosek
Dziedziczenie w Javie jest właściwością, dzięki której właściwości i zachowanie klasy są nabywane przez inną klasę w celu zapewnienia możliwości ponownego użycia kodu. Istnieją różne typy dziedziczenia w Javie, takie jak dziedziczenie pojedyncze, dziedziczenie wielopoziomowe, dziedziczenie hierarchiczne i wielokrotne dziedziczenie w Javie. W tym dokumencie omówiono kilka ważnych aspektów dziedziczenia.
Polecane artykuły
Jest to przewodnik po dziedziczeniu w Javie. Tutaj omawiamy znaczenie i różne rodzaje dziedziczenia w Javie wraz ze składnią, przykładami i implementacją kodu. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej-
- JScrollPane w Javie
- Sesje w PHP
- Sortowanie w Javie
- Co to jest Java Garbage Collector?
- Narzędzia wdrażania Java
- Przesłanianie w Javie
- Dziedziczenie w PHP