Latest web development tutorials

Java Vererbung

Vererbung ist ein Eckpfeiler der objektorientierten Programmierung Java-Technologie, weil sie die Schaffung von hierarchischen Ebene Klassen ermöglicht. Vererbung kann als ein Objekt verstanden werden, um die Eigenschaften von einem anderen Objekt des Prozesses zu erhalten.

Wenn die übergeordnete Klasse eine Klasse A Klasse B, Klasse B und Klasse C die Elternklasse ist, und wir rufen auch C eine Unterklasse von A, der Klasse C von Klasse A wird vererbt. In Java Klassenvererbung einfache Vererbung, das heißt, kann eine Unterklasse haben nur eine Elternklasse

Zwei am häufigsten verwendeten Schlüsselwörter Vererbung erweitert und implementiert.

Sowohl die Verwendung von Schlüsselwörtern und bestimmen, ob ein Objekt ein anderes Objekt IS-A (a) Beziehung.

Durch die Verwendung dieser beiden Schlüsselwörter können wir ein Objekt, das die Eigenschaften eines anderen Objekts zu erreichen.

Alle Java-Klassen werden von der java.lang.Object Klasse geerbt, so dass die Klasse Objekt der Vorfahre aller Klassen ist, und zusätzlich Object, alle Klassen müssen eine Elternklasse haben.

Durch die Schlüsselwörter über erstreckt sich eine Klasse erbt von einer anderen Klasse erklären kann, ist die allgemeine Form wie folgt:

// A.java
public class A {
    private int i;
    protected int j;
 
    public void func() {
 
    }
}
 
// B.java
public class B extends A {
}

Die oben genannten Code-Schnipsel zeigt, B von A erbt, ist B eine Unterklasse von A. Und A ist eine Unterklasse von Object ist, kann es nicht explizit deklariert werden.

Als Unterklasse Beispiel B von A hat alle Variablen Mitglied, aber für die Mitglieder der privaten Variable B, aber keinen Zugriff haben, die Kapselung A ist garantiert.


IS-A-Beziehung

Das IS-A: Ein Objekt ist eine weitere Aufgabe Klassifizierung.

Hier ist das Schlüsselwort Implementierungsvererbung erstreckt.

public class Animal{
}

public class Mammal extends Animal{
}

public class Reptile extends Animal{
}

public class Dog extends Mammal{
}

Basierend auf dem obigen Beispiel ist die folgende Aussage erfüllt:

  • Animal-Klasse ist die Elternklasse Säugetier-Klasse.
  • Animal-Klasse ist die Elternklasse Reptile Klasse.
  • Säugetier und Reptil-Klasse ist eine Unterklasse der Klasse Tier.
  • Dog-Klasse ist sowohl eine Unterklasse der Säugetier-Klasse ist eine Unterklasse der Klasse Tier.

Analyse der IS-A-Beziehung in dem obigen Beispiel, wie folgt:

  • Säugetier IS-A Tier
  • Reptil-A Tier
  • Hund IS-A Säugetier

Deshalb: Hund IS-A Tier

Durch die Verwendung des Keyword erstreckt, erben Unterklassen , die alle übergeordneten Klasse Methoden und Eigenschaften, kann aber nicht privat nutzen (privat) Methoden und Eigenschaften.

Wir verwenden den Operator instanceof kann Säugetier bestimmen IS-A Tier

Beispiele

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);
   }
}

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

true
true
true

Nach der Einführung von Keyword erstreckt, sehen wir uns an , wie das Schlüsselwort implements verwenden , um die IS-A - Beziehung anzuzeigen.

Implementiert Stichwort im Falle der Klassenvererbung Schnittstelle kann diese Situation sich nicht das Schlüsselwort verwenden.

Beispiele

public interface Animal {}

public class Mammal implements Animal{
}

public class Dog extends Mammal{
}

instanceof Schlüsselwort

Sie können die instanceof - Operator verwenden , um zu testen , ob Säugetier und Hund Objekt ist eine Instanz der Klasse Tier.

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);
   }
} 

Die obigen Beispiele kompilierten Ergebnisse sind wie folgt:

true
true
true

HAS-A-Beziehung

HAS-A Zugehörigkeit im Namen der Klasse und ihre Mitglieder. Dies hilft, die Wiederverwendung von Code und Code-Fehler zu reduzieren.

Beispiel

public class Vehicle{}
public class Speed{}
public class Van extends Vehicle{
	private Speed sp;
} 

Van Klasse und Geschwindigkeitsklasse ist HAS-A-Beziehung (Van hat eine Geschwindigkeit), so dass Sie nicht alle haben den Code in das Van Geschwindigkeitsklasse in der Klasse eingefügt wird, und Geschwindigkeitsklasse kann in mehreren Anwendungen wiederverwendet werden.

In der objektorientierten Features, Sorgen braucht der Benutzer nicht darum, wie die internen Klassen.

Van Klasse Implementierungsdetails vor dem Benutzer verborgen, so dass die Nutzer nur wissen müssen, wie Van-Klasse aufrufen, eine bestimmte Funktion zu vervollständigen, ohne Van Klasse wissen zu müssen, ist es, sich selbst zu tun oder anderen Klasse aufrufen, die Arbeit zu tun.

Java unterstützt nur einfache Vererbung, was bedeutet, dass eine Klasse nicht mehrere Klassen erben können.

Die folgende Praxis ist nicht zulässig:

public class extends Animal, Mammal{} 

Java unterstützt nur einfache Vererbung (Vererbung und abstrakte Basisklasse), aber wir die Schnittstelle zu implementieren können (Mehrfachvererbung Schnittstellen zu erreichen), das Skript Struktur wie zum Beispiel:

public class Apple extends Fruit implements Fruit1, Fruit2{}

Im Allgemeinen erben wir die Basisklasse und abstrakte Klasse mit dem Schlüsselwort erstreckt implementiert die Schnittstelle mit dem Schlüsselwort implements Klassenvererbung.