Najlepszy samouczek dziedziczenie Java W 2024 r. W tym samouczku możesz dowiedzieć się IS-Relacja,instanceof kluczowe,HAS-relacja,
Dziedziczenie jest podstawą technologii Java zorientowanym obiektowo, ponieważ pozwala na tworzenie klas poziomie hierarchii. Dziedziczenie może być rozumiane jako obiekt, aby uzyskać właściwości z innego przedmiotu tego procesu.
Jeśli klasa dominująca jest klasa A klasa B, klasa B i klasy C jest klasą dominującą, a my również zadzwonić C jest podklasą A, klasa C klasa A jest dziedziczona. W Javie, klasa dziedziczenia pojedynczego dziedziczenia, czyli podklasą może mieć tylko jedną klasę nadrzędną
Dwa najczęściej używane słowa kluczowe dziedziczenie jest rozszerza i wdraża.
Zarówno wykorzystanie słów kluczowych i określić, czy obiekt jest inny obiekt IS-A (a) związek.
Stosując te dwa słowa kluczowe, możemy osiągnąć obiekt, aby uzyskać właściwości innego obiektu.
Wszystkie klasy Java są dziedziczone przez klasę java.lang.Object, więc obiekt klasa jest przodkiem wszystkich klas, a ponadto Object wszystkie klasy muszą mieć klasę nadrzędną.
Poprzez nadmierne rozciąga słowa kluczowe mogą zadeklarować klasa dziedziczy z innej klasy, ogólna postać jest następująca:
// A.java public class A { private int i; protected int j; public void func() { } } // B.java public class B extends A { }
Powyższe pokazuje fragment kodu, B dziedziczy po A, B jest podklasą A. I A jest podklasą obiektu, nie może być jawnie zadeklarowane.
Jako podklasa instancji B A posiada wszystkie zmienne składowe, ale dla członków prywatnej zmiennej B, ale nie mają dostępu, który gwarantuje hermetyzacja jest.To IS-A: Celem jest klasyfikacja innym przedmiotem.
Oto kluczowe rozciąga realizacji dziedziczenia.
public class Animal{ } public class Mammal extends Animal{ } public class Reptile extends Animal{ } public class Dog extends Mammal{ }
Na podstawie powyższego przykładu, następujące stwierdzenie jest prawdziwe:
Analiza IS-Relacja w powyższym przykładzie, w następujący sposób:
Dlatego: Dog is-a Zwierząt
Używając słowa kluczowego rozciąga podklasy dziedziczą wszystkie metody i właściwości klasy nadrzędnej, ale nie można korzystać z prywatnych (prywatny) metody i właściwości.
Używamy instanceof operator może określić ssak-A Zwierząt
public class Dog extends Mammal{ public static void main(String args[]){ Animal a = new Animal(); Mammal m = new Mammal(); Dog d = new Dog(); System.out.println(m instanceof Animal); System.out.println(d instanceof Mammal); System.out.println(d instanceof Animal); } }
Powyższe przykłady zebrane wyniki przedstawiają się następująco:
true true true
Po wprowadzeniu słowa kluczowego extends, przyjrzymy się, jak używać słowa kluczowego implements wskazać IS-relacji.
Wdraża kluczowe w przypadku interfejsu klasy dziedziczenia, sytuacja ta nie może używać słowa kluczowego rozciąga.
public interface Animal {} public class Mammal implements Animal{ } public class Dog extends Mammal{ }
Można użyć operatora instanceof, aby sprawdzić, czy ssak i przedmiot pies jest instancją klasy Animal.
interface Animal{} class Mammal implements Animal{} public class Dog extends Mammal{ public static void main(String args[]){ Mammal m = new Mammal(); Dog d = new Dog(); System.out.println(m instanceof Animal); System.out.println(d instanceof Mammal); System.out.println(d instanceof Animal); } }
Powyższe przykłady zebrane wyniki przedstawiają się następująco:
true true true
HAS-A przynależność w imieniu grupy i jej członków. Przyczynia się to do ponownego użycia kodu i zmniejszenie błędów kodu.
public class Vehicle{} public class Speed{} public class Van extends Vehicle{ private Speed sp; }
Van klasa i klasa Prędkość jest HAS-relacja (van ma prędkość), dzięki czemu nie będzie musiał cały kod zostanie wklejony do klasy Van prędkości w klasie, a Klasa prędkości obrotowej mogą być ponownie wykorzystane w wielu aplikacjach.
W cech obiektowych, użytkownik nie musi martwić się, jak klas wewnętrznych.
szczegóły implementacji klasy Van ukryte przed użytkownikiem, więc użytkownicy muszą tylko wiedzieć, jak zadzwonić Van klasy, aby zakończyć pewną funkcję, bez konieczności znajomości Van klasy jest zrobić to sami lub zadzwoń do innej klasy do pracy.
Java obsługuje tylko pojedynczy dziedziczenia, co oznacza, że klasa nie może dziedziczyć z wielu klas.
Poniższa praktyka nie jest legalne:
public class extends Animal, Mammal{}
Java obsługuje tylko pojedynczy dziedziczenia (dziedziczenie i abstrakcyjne klasy bazowej), ale możemy użyć interfejsu do wdrożenia (interfejsy wielokrotnego dziedziczenia do osiągnięcia), struktura skryptów takich jak:
public class Apple extends Fruit implements Fruit1, Fruit2{}
Generalnie dziedziczą z klasy bazowej i klasy abstrakcyjne z rozciąga kluczowe implementuje interfejs z dziedziczenia narzędzi klasy słów kluczowych.