logo

Upcasting und Downcasting in Java

Ein Prozess zum Konvertieren eines Datentyps in einen anderen wird als bezeichnet Typisierung Und Upcasting Und Niedergeschlagen ist die Art der Objekttypumwandlung. In Java kann das Objekt auch wie die Datentypen typisiert werden. Elternteil Und Kind Objekte sind zwei Arten von Objekten. Es sind also zwei Arten der Typumwandlung für ein Objekt möglich, nämlich Von Eltern zu Kind Und Vom Kind zum Elternteil oder kann man sagen Upcasting Und Niedergeschlagen .

In Java , das Objekt kann auch wie die Datentypen typisiert werden. Elternteil Und Untergeordnete Objekte sind zwei Arten von Objekten. Es sind also zwei Arten der Typumwandlung für ein Objekt möglich, nämlich Von Eltern zu Kind Und Vom Kind zum Elternteil oder kann man sagen Upcasting Und Niedergeschlagen .

Typisierung wird verwendet, um sicherzustellen, dass Variablen von einer Funktion korrekt verarbeitet werden oder nicht. In Upcasting Und Niedergeschlagen , wir typisieren ein untergeordnetes Objekt zu einem übergeordneten Objekt Und ein übergeordnetes Objekt zu einem untergeordneten Objekt gleichzeitig. Wir können Upcasting implizit oder explizit durchführen, Downcasting ist jedoch nicht implizit möglich.

Upcasting und Downcasting in Java

Lassen Sie uns tiefer in diese beiden Arten des Objekt-Castings eintauchen:

Java zusammenführen

1) Upcasting

Upcasting ist eine Art Objekttypumwandlung, bei der a untergeordnetes Objekt wird in a typisiert übergeordnetes Klassenobjekt . Durch die Verwendung von Upcasting können wir problemlos auf die Variablen und Methoden der übergeordneten Klasse für die untergeordnete Klasse zugreifen. Hier greifen wir nicht auf alle Variablen und die Methode zu. Wir greifen nur auf einige angegebene Variablen und Methoden der untergeordneten Klasse zu. Upcasting ist auch bekannt als Verallgemeinerung Und Erweiterung .

UpcastingExample.java

Pythonschlange vs. Anakonda
 class Parent{ void PrintData() { System.out.println('method of parent class'); } } class Child extends Parent { void PrintData() { System.out.println('method of child class'); } } class UpcastingExample{ public static void main(String args[]) { Parent obj1 = (Parent) new Child(); Parent obj2 = (Parent) new Child(); obj1.PrintData(); obj2.PrintData(); } } 

Ausgabe:

Upcasting und Downcasting in Java

2) Niedergeschlagenheit

Upcasting ist eine andere Art der Objekttypisierung. Beim Upcasting weisen wir der untergeordneten Klasse ein Referenzobjekt der übergeordneten Klasse zu. In Java können wir der untergeordneten Klasse kein Referenzobjekt der übergeordneten Klasse zuweisen, aber wenn wir ein Downcasting durchführen, erhalten wir keinen Fehler bei der Kompilierung. Wenn wir es jedoch ausführen, wirft es das 'ClassCastException' . Der Punkt ist nun, wenn Downcasting in Java nicht möglich ist, warum wird es dann vom Compiler zugelassen? In Java ermöglichen uns einige Szenarien die Durchführung eines Downcastings. Hier wird das Unterklassenobjekt von der übergeordneten Klasse referenziert.

Nachfolgend finden Sie ein Beispiel für ein Downcasting, in dem sowohl das gültige als auch das ungültige Szenario erläutert wird:

DowncastingExample.java

 //Parent class class Parent { String name; // A method which prints the data of the parent class void showMessage() { System.out.println('Parent method is called'); } } // Child class class Child extends Parent { int age; // Performing overriding @Override void showMessage() { System.out.println('Child method is called'); } } public class Downcasting{ public static void main(String[] args) { Parent p = new Child(); p.name = 'Shubham'; // Performing Downcasting Implicitly //Child c = new Parent(); // it gives compile-time error // Performing Downcasting Explicitly Child c = (Child)p; c.age = 18; System.out.println(c.name); System.out.println(c.age); c.showMessage(); } } 

Ausgabe:

Upcasting und Downcasting in Java

Warum brauchen wir Upcasting und Downcasting?

In Java verwenden wir es selten Upcasting . Wir verwenden es, wenn wir einen Code entwickeln müssen, der sich nur mit der übergeordneten Klasse befasst. Niedergeschlagen wird verwendet, wenn wir einen Code entwickeln müssen, der auf das Verhalten der untergeordneten Klasse zugreift.

Zeichenfolgenwert von
Upcasting und Downcasting in Java

Unterschied zwischen Upcasting und Downcasting

Dies sind die folgenden Unterschiede zwischen Upcasting und Downcasting:

Ja Nein Upcasting Niedergeschlagen
1. Ein untergeordnetes Objekt wird in ein übergeordnetes Objekt typisiert. Die Referenz des übergeordneten Klassenobjekts wird an die untergeordnete Klasse übergeben.
2. Wir können Upcasting implizit oder explizit durchführen. Implizites Downcasting ist nicht möglich.
3. In der untergeordneten Klasse können wir auf die Methoden und Variablen der übergeordneten Klasse zugreifen. Auf die Methoden und Variablen beider Klassen (übergeordnete und untergeordnete Klasse) kann zugegriffen werden.
4. Wir können auf einige angegebene Methoden der untergeordneten Klasse zugreifen. Durch Downcasting kann auf alle Methoden und Variablen beider Klassen zugegriffen werden.
5. Elternteil p = neues Elternteil() Elternteil p = neues Kind()
Kind c = (Kind)p;