Es coneix com a procés de conversió d'un tipus de dades a un altre Mecanografia i Upcasting i Descens és el tipus de tipografia d'objectes. A Java, l'objecte també es pot tipificar com els tipus de dades. Pare i Nen els objectes són dos tipus d'objectes. Per tant, hi ha dos tipus de tipografia possibles per a un objecte, és a dir, De pares a fills i Fill a pare o pot dir Upcasting i Descens .
En Java , l'objecte també es pot escriure com els tipus de dades. Pare i Objectes infantils són dos tipus d'objectes. Per tant, hi ha dos tipus de tipografia possibles per a un objecte, és a dir, De pares a fills i Fill a pare o pot dir Upcasting i Descens .
Mecanografia s'utilitza per assegurar si les variables són processades correctament per una funció o no. En Upcasting i Descens , escrivim un objecte fill a un objecte pare i un objecte pare a un objecte fill simultàniament. Podem realitzar Upcasting implícitament o explícitament, però el downcasting no pot ser implícitament possible.
Aprofundim en aquests dos tipus de fosa d'objectes:
cadena invertida java
1) Upcasting
Upcasting és un tipus de tipografia d'objectes en què a objecte fill està tipificat a a objecte de classe pare . Mitjançant l'Upcasting, podem accedir fàcilment a les variables i mètodes de la classe pare a la classe secundària. Aquí, no accedim a totes les variables i al mètode. Accedim només a algunes variables i mètodes especificats de la classe fill. Upcasting també es coneix com Generalització i Ampliació .
UpcastingExample.java
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(); } }
Sortida:
2) Descens
Upcasting és un altre tipus de tipografia d'objectes. A Upcasting, assignem un objecte de referència de classe pare a la classe secundària. A Java, no podem assignar un objecte de referència de classe pare a la classe secundària, però si fem una baixada, no obtindrem cap error en temps de compilació. Tanmateix, quan l'executem, llança el 'ClassCastException' . Ara la qüestió és que si la baixada no és possible a Java, per què ho permet el compilador? A Java, alguns escenaris ens permeten realitzar downcasting. Aquí, la classe pare fa referència a l'objecte de subclasse.
quadre d'alerta de javascript
A continuació es mostra un exemple de downcasting en què s'expliquen tant els escenaris vàlids com els no vàlids:
DowncastingExample.java
paraula clau volàtil 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(); } }
Sortida:
Per què necessitem Upcasting i Downcasting?
A Java, poques vegades fem servir Upcasting . El fem servir quan necessitem desenvolupar un codi que tracti només de la classe pare. Descens s'utilitza quan necessitem desenvolupar un codi que accedeixi als comportaments de la classe infantil.
Diferència entre Upcasting i Downcasting
Aquestes són les següents diferències entre Upcasting i Downcasting:
S.No | Upcasting | Descens |
---|---|---|
1. | Un objecte fill s'envia a un objecte pare. | La referència de l'objecte de classe pare es passa a la classe secundària. |
2. | Podem realitzar Upcasting de manera implícita o explícita. | Implícitament, la baixada no és possible. |
3. | A la classe fill, podem accedir als mètodes i variables de la classe pare. | Es pot accedir als mètodes i variables de les dues classes (pare i fill). |
4. | Podem accedir a alguns mètodes especificats de la classe fill. | Es pot accedir a tots els mètodes i variables d'ambdues classes realitzant downcasting. |
5. | Parent p = nou Parent() | Pare p = fill nou () Nen c = (Nen)p; |