Downcasting in Java
Wenn Sie mit Java arbeiten, können Sie mit TypeCasting
, UpCasting
oder DownCasting
arbeiten. Der Zweck ihrer Verwendung ist die Umwandlung von einem Typ in einen anderen.
Dies kann mit Variablen oder Objekten geschehen. Für ein Objekt stehen zwei Arten der Transformation zur Verfügung.
Der erste ist Parent to Child und der zweite Child to Parent.
Hier wird die Umwandlung vom Kind zum Elternteil als UpCasting
bezeichnet, und die Umwandlung vom Elternteil zum Kind wird als DownCasting
bezeichnet. Wir können das UpCasting
implizit oder explizit durchführen, aber wir können das DownCasting
nur explizit durchführen.
In diesem Artikel werden wir uns die Details von DownCasting
ansehen. Außerdem werden wir das Thema anhand notwendiger Beispiele und Erklärungen beschreiben, um das Thema einfacher zu machen.
Downcasting in Java
Nun sehen wir uns ein Beispiel zum Thema DownCasting
an.
class ParentClass {
String name;
void showMessage() {
System.out.print("Parent class method is called");
}
}
class ChildClass extends ParentClass {
int age;
@Override
void showMessage() {
System.out.print("The child class method is called");
}
}
class Downcasting {
public static void main(String[] args) {
ParentClass Parent = new ChildClass();
Parent.name = "Alex";
ChildClass Child = (ChildClass) Parent;
Child.age = 21;
System.out.print("Name:" + Child.name + " ");
System.out.println("Age:" + Child.age);
Child.showMessage();
}
}
Lassen Sie uns den Code Teil für Teil erklären. Zuerst haben wir eine übergeordnete Klasse namens ParentClass
erstellt, und dann haben wir eine untergeordnete Klasse namens ChildClass
erstellt und diese um die ParentClass
erweitert.
Auf der ChildClass
haben wir das Überschreiben mit @Override
durchgeführt.
Danach haben wir eine weitere Klasse namens Downcasting
erstellt, unsere Kontrollklasse. In der Klasse haben wir ein Objekt aus der ParentClass
erstellt.
Dann stürzen wir ein Objekt mit der Zeile ChildClass Child = (ChildClass)Parent;
herunter.
Zum Schluss drucken wir alle Daten aus. Jetzt nach dem Ausführen des obigen Java-Programms.
Sie erhalten eine Ausgabe wie die folgende.
Name:Alex Age:21
The child class method is called
Compilerfehler, wenn Sie versuchen, implizit herunterzuwandeln
Im obigen Beispiel haben wir das Downcasting explizit durchgeführt. Wenn Sie versuchen, implizit herunterzuladen, erhalten Sie möglicherweise eine Fehlermeldung.
Schauen Sie sich das nächste Beispiel an, in dem wir versucht haben, implizit herunterzuwerfen.
class ParentClass {
String name;
void showMessage() {
System.out.print("Parent class method is called");
}
}
class ChildClass extends ParentClass {
int age;
@Override
void showMessage() {
System.out.print("Child class method is called");
}
}
class Downcasting {
public static void main(String[] args) {
ParentClass Parent = new ChildClass();
Parent.name = "Alex";
ChildClass Child = new ParentClass();
Child.age = 21;
System.out.print("Name:" + Child.name + " ");
System.out.println("Age:" + Child.age);
Child.showMessage();
}
}
Wenn Sie versuchen, das obige Programm zu kompilieren, erhalten Sie einen Fehler wie den folgenden.
/tmp/AMCRVnDhlV/Downcasting.java:22: error: incompatible types: ParentClass cannot be converted to ChildClass
ChildClass Child = new ParentClass();
^
1 error
Bitte beachten Sie, dass DownCasting
extern erfolgen muss. Durch die Verwendung von DownCasting
kann ein untergeordnetes Objekt die Eigenschaften seines übergeordneten Objekts erhalten.
Bitte beachten Sie, dass die hier freigegebenen Codebeispiele in Java sind und Sie Java in Ihrer Umgebung installieren müssen, wenn Ihr System kein Java enthält.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn