Latest web development tutorials

dziedziczenie Java

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.


IS-Relacja

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:

  • Klasa Animal jest rodzicem class Mammal.
  • Klasa Animal jest rodzicem class gadów.
  • Ssak gadów i klasa jest podklasą klasy Zwierząt.
  • klasa Dog jest zarówno podklasą klasy Mammal jest podklasą klasy Zwierząt.

Analiza IS-Relacja w powyższym przykładzie, w następujący sposób:

  • Ssak IS-A Zwierząt
  • Gad IS-A Zwierząt
  • Pies IS-ssaka

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

Przykłady

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.

Przykłady

public interface Animal {}

public class Mammal implements Animal{
}

public class Dog extends Mammal{
}

instanceof kluczowe

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-relacja

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.

przykład

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.