Arbeiten mit verwandten Klassen in Java

Viele der Klassen, die Sie in Java sehen werden oder Objekte erstellt, die auf einem eigenen Stand vertreten. Allerdings liegt die Wirkleistung von der objektorientierten Programmierung in seiner Fähigkeit Klassen erstellen, die Objekte beschreiben, die eng miteinander verwandt sind.

Menu

Zum Beispiel Baseballs sind ähnlich sowohl spezifische Arten von Bällen sind softballs-. Jeder hat einen Durchmesser und eine gewichts beide können geworfen, gefangen werden, oder treffen. Aber sie haben unterschiedliche Eigenschaften, die sie verursachen, sich anders zu verhalten.

Wenn Sie ein Programm bereit, die die Baseballs und Softbälle Arbeit simuliert, müssen Sie einen Weg, diese beiden Arten von Bällen zu repräsentieren. Eine Möglichkeit ist, getrennte Klassen zu erstellen jede Art von Ball zu vertreten. Diese Klassen sind ähnlich, so können Sie einfach kopieren die meisten der Code von einer Klasse zur anderen.

Eine andere Möglichkeit ist es, eine einzige Klasse zu verwenden, um beide Arten von Bällen zu repräsentieren. Dann übergeben Sie einen Parameter an den Konstruktor, um anzuzeigen, ob eine Instanz der Klasse wie ein Baseball verhält oder wie ein Softball.

Java hat zwei objektorientierte Programmierfunktionen, die speziell Klassen zu behandeln ausgelegt sind, die wie folgt verbunden sind: Vererbung und Schnittstellen.

Erbe

Erbe ist eine objektorientierte Programmiertechnik, die Sie für eine andere verwenden Sie eine Klasse, die als Grundlage lässt. Die bestehende Klasse aufgerufen, um die Basisklasse, Oberklasse, oder Eltern Klassen- die neue Klasse, die daraus abgeleitet ist heißt das abgeleiteten Klasse, Unterklasse, oder Kind-Klasse.

Wenn Sie eine Unterklasse erstellen, wird die Unterklasse automatisch alle Methoden gegeben und von der übergeordneten Klasse definiert Felder aus. Sie können diese Methoden und Felder verwenden, wie sie ist, oder Sie können sie außer Kraft setzen, ihr Verhalten zu ändern. Darüber hinaus können Sie Methoden und Felder hinzufügen, die Daten und das Verhalten definieren, die für die Unterklasse einzigartig ist.

Sie könnten Vererbung verwenden, um die Baseball / Softball Problem zu lösen, indem Erstellen einer Klasse namens Ball dass bietet die grundlegenden Funktionen aller Arten von Bällen und dann als Basisklasse für verschiedene Klassen mit dem Namen Baseball und Softball. Dann könnten diese Klassen die Methoden überschreiben, die unterschiedlich für jede Art von Ball zu verhalten müssen.

Eine Möglichkeit der Vererbung zu denken ist als eine Möglichkeit zur Umsetzung is-a-Art-of Beziehungen. Zum Beispiel ist ein Softball ist eine Art von Ball, wie ein Baseball ist. So Vererbung ist ein geeigneter Weg, um diese im Zusammenhang mit Klassen zu implementieren.

Schnittstellen

Ein Schnittstelle ist eine benannte Gruppe von öffentlichen Verfahren und Felddeklarationen. Beachten Sie, dass die Schnittstelle selbst keinen Code liefern diese Methoden zu implementieren. Stattdessen bietet es nur die Erklärungen. Dann wird eine Klasse, Arbeitsgeräte die Schnittstelle stellt Code für jede der Methoden der Schnittstelle definiert.

Sie könnten eine Schnittstelle verwenden, um die Baseball / Softball Problem zu lösen, indem eine Schnittstelle zu schaffen benannt Ball dass gibt alle Methoden und Felder, die ein Ball haben sollte. Dann könnten Sie das schaffen Softball und Baseball Klassen, so dass sie sowohl die Umsetzung Ball Schnittstelle.

Schnittstellen sind eng verwandt mit Vererbung, haben aber zwei wesentliche Unterschiede:

  • Die Schnittstelle selbst bietet keine Code, der eine seiner Methoden implementiert. Eine Schnittstelle ist nur eine Reihe von Verfahren und Feld Signaturen. Im Gegensatz dazu kann eine Basisklasse zur Verfügung stellen, die Umsetzung für einige oder alle seiner Methoden.
  • Eine Klasse kann nur eine Basisklasse haben. Allerdings kann eine Klasse so viele Schnittstellen wie nötig zu implementieren.

Menü