Vererbung in Java: Klasse und Schnittstelle

Die Vererbung in Java ist eine einfache und mächtige Eigenschaft im objektorientierten Konzept, sie ermöglicht es Ihnen, die Attribute und Methoden der übergeordneten Klasse in die Tochterklasse umzuschreiben, und auf diese Weise kann auch eine andere Unterklasse von der Tochterklasse erben. Java verwendet diese Eigenschaft in allen Klassen.

Das Schlüsselwort, das für die Vererbung in Java verwendet wird, ist  extends. Mehrfache Vererbung ist verboten, aber für Schnittstellen erlaubt.

Die Objektklasse

Beim Programmieren stellen wir fest, dass Methoden überall wiederholt werden, wie z.B.: toObject(), equals(), warten()... etc. Dies liegt daran, dass in Java alle Klassen von der Superklasse erben. Objekt  Dies ist die Wurzel der gesamten Hierarchie.

Objektorientierte Baumhierarchie in Java
Alle Klassen erben von Object

Example

In diesem Beispiel haben wir eine Person-Klasse mit den Attributen name und address deklariert. Beide Unterklassen erben von Person: die erste Klasse Direktor und die zweite Klasse Angestellter, die als zusätzliches Attribut salary.


class Person
{
public Name der Zeichenkette;
öffentliche String-Adresse;
}
class Mitarbeiter verlängert Person
{
int Gehalt;
public Employee(String name, String address, int salary)
{
this.name=name;
this.address=Adresse;
this.salary=salary;
}
}
class Director extends Person
{
public Director()
{
this.name= "name";
this.adresse= "Adresse";
}
}

note:
Die Tochterklasse erbt die deklarierten membersprotected und public und erbt auch die Mitglieder private wenn es sich im selben Paket wie die übergeordnete Klasse befindet.

Das Super-Schlüsselwort in java

Die Person-Klasse kann erweitert werden, um von ihr in Unterklassen geerbt zu werden, wenn man bedenkt, dass es in diesem Unternehmen mehrere Funktionen gibt: Ingenieur, Buchhalter, Sekretärin... etc.

uml Mitarbeiter Buchhaltungsingenieur

class Engineer extends Employee
{
public Engineer()
{
super("name","address",110);
}

public void concevoir(){System.out.println("Ich bin Ingenieur");}
public void developper(){};
}

class Accountant erweitert Employee
{
public Accountant()
{
this.name= "name";
this.adresse= "Adresse";
this.salary = 3000;
}

public void manageAccounts(){};
public void gererLesBilans(){};
}
Wir sehen die Struktur in Form einer Hierarchie, dieser Baum hilft uns, die Struktur unseres Programms zu verstehen. Der Unterschied zwischen den beiden Klassen Engineer und Employee besteht in der Verwendung des Schlüsselworts super in Engineer, das den Konstruktor der übergeordneten Klasse direkt aufruft. Standardmäßig ist die super() ruft den Hersteller ohne Argumente auf und Super(P1, P2,...) ruft den Konstruktor mit argumenten auf.

Das Schlüsselwort super wird auch verwendet, um Methoden der höheren Klasse aufzurufen. Hier ist ein Beispiel:


class Ingenieur_reseaux erweitert Employee
{
public Ingenieur_reseaux ()
{
super("name","address",3100);
}

public void concevoir(){
super.concevoir();
System.out.println("Ich habe die Netzwerkarchitektur des Unternehmens entworfen");
}
}
Ohne super wird die im Konstruktor Ingénieur_réseaux deklarierte Methode design() anstelle der in engineer deklarierten Methode design() aufgerufen, so dass Sie, um auf die übergeordnete Methode zu verweisen, das Schlüsselwort  super.

Runtime:

Ich bin Ingenieur
Ich habe die Netzwerkarchitektur des Unternehmens entworfen

Schnittstellenvererbung in java

Mehrfache Vererbung ist für Schnittstellen erlaubt.

interface print{
void print();
}
interface display{
void display();
}
interface interfaceIA erweitert print,display{
void imprimer_afficher();
}
class testIA implementiert interfaceIA{

void print(){System.out.println("Printing")};
void display(){System.out.println("Drucken abgeschlossen")};

public static void main(){
testIA test = new testIA();
test.print();
test.display();
}
}