IS a vs HAS a in Java
- IS-A-Beziehung in Java
- HAS-A-Beziehung in Java
- Hauptunterschiede zwischen IS-A-Beziehung und HAS-A-Beziehung
Eines der Hauptmerkmale bei der Verwendung einer objektorientierten Programmiersprache besteht darin, dass wir einen Code mehrmals wiederverwenden können. Im Allgemeinen können wir zwei Konzepte verwenden, Vererbung und Zusammensetzung, um Wiederverwendbarkeit zu erreichen.
Vererbung ist eine IS-A-Beziehung und Komposition ist eine HAS-A-Beziehung. Beide Konzepte unterscheiden sich in gewisser Weise, haben aber das gleiche Ziel, die Wiederverwendbarkeit.
Lassen Sie uns den Unterschied zwischen diesen beiden Konzepten unten sehen.
IS-A-Beziehung in Java
Eine Vererbung oder die IS-A-Beziehung in Java bezieht sich auf die Beziehung von zwei oder mehr Klassen. Die Vererbung kann durch die Verwendung des Schlüsselworts extends
in Java erreicht werden. Wir können eine Elternklasse erben, um ihre Methoden und Variablen in einer Kindklasse zu verwenden.
Im folgenden Beispielcode haben wir zwei Klassen, Animal
und Dog
, die Klasse Animal
hat eine Funktion whatAmI()
, die einen String zurückgibt, während die Klasse Dog
die Klasse Animal
erweitert das ist ein Konzept der Vererbung.
Dieser Dog
ist eine Tier
-Beziehung. Die Klasse Dog
kann nun von ihrer Elternklasse auf die Methode whatAmI()
zugreifen.
class Animal {
public String whatAmI() {
return "I belong to Animal class";
}
}
class Dog extends Animal {
public void aboutMe() {
System.out.println("I am a Dog class and " + whatAmI());
}
}
Ausgabe:
I am a Dog class and I belong to Animal class
HAS-A-Beziehung in Java
Im Gegensatz zur Vererbung verwendet die Komposition oder die HAS-A-Beziehung kein Schlüsselwort wie extends
. Wir erstellen ein Objekt der Elternklasse oder einer anderen Klasse, die wir in dieser Methode verwenden möchten.
Im folgenden Beispiel haben wir wiederum zwei Klassen, Legs
und Dog
.
Legs
hat eine Methode howManyLegs()
. In der Dog
-Klasse erstellen wir ein Objekt der Legs
-Klasse und verwenden dieses Objekt, um die howManyLegs()
-Funktion aufzurufen.
Hier sehen wir nun, dass das Kompositionskonzept angewendet wird, Dog
HAS-A Legs
oder Dog
Klasse HAS-A Eigenschaft von Beine
.
class Legs {
public String howManyLegs() {
return "I have four legs";
}
}
class Dog {
Legs legs = new Legs();
public void aboutMe() {
System.out.println("I am a Dog class and " + legs.howManyLegs());
}
}
Ausgabe:
I am a Dog class and I have four legs
Hauptunterschiede zwischen IS-A-Beziehung und HAS-A-Beziehung
IS-A | HAS-A |
---|---|
Es ist ein Konzept der Vererbung | Es ist ein Konzept der Komposition |
Eine Klasse kann nicht mehr als eine Klasse erweitern. | Eine Klasse kann eine HAS-A-Beziehung mit mehreren anderen Klassen haben |
Eine letzte Klasse kann in Vererbung nicht erweitert werden | Wir können letzte Klassen in Komposition wiederverwenden |
Die Vererbung ist eine statische Bindung und kann zur Laufzeit nicht geändert werden | Die Komposition ist dynamisch bindend und flexibel für Änderungen |
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn