logo

Opp- og nedkasting i Java

En prosess med å konvertere en datatype til en annen er kjent som Typecasting og Upcasting og Nedkastende er typen objekttypecasting. I Java kan objektet også typecastes som datatypene. Foreldre og Barn objekter er to typer objekter. Så det er to typer typecasting mulig for et objekt, dvs. Forelder til barn og Barn til forelder eller kan si Upcasting og Nedkastende .

I Java , kan objektet også typecastes som datatypene. Foreldre og Barneobjekter er to typer objekter. Så det er to typer typecasting mulig for et objekt, dvs. Forelder til barn og Barn til forelder eller kan si Upcasting og Nedkastende .

Typecasting brukes til å sikre om variabler er korrekt behandlet av en funksjon eller ikke. I Upcasting og Nedkastende , vi typecaster et underordnet objekt til et overordnet objekt og et overordnet objekt til et underordnet objekt samtidig. Vi kan utføre Upcasting implisitt eller eksplisitt, men downcasting kan ikke være implisitt mulig.

Opp- og nedkasting i Java

La oss dykke ned i begge disse typene objektstøping:

cast sql

1) Upcasting

Upcasting er en type objekttypecasting der en barneobjekt er typecastet til en overordnet klasseobjekt . Ved å bruke Upcasting kan vi enkelt få tilgang til variablene og metodene til overordnet klasse til barneklassen. Her får vi ikke tilgang til alle variablene og metoden. Vi har kun tilgang til noen spesifiserte variabler og metoder for barneklassen. Upcasting er også kjent som Generalisering og Utvidende .

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(); } } 

Produksjon:

Opp- og nedkasting i Java

2) Nedkasting

Upcasting er en annen type objekttypecasting. I Upcasting tilordner vi et overordnet klassereferanseobjekt til underklassen. I Java kan vi ikke tilordne et overordnet klassereferanseobjekt til underklassen, men hvis vi utfører nedkasting vil vi ikke få noen kompileringstidsfeil. Men når vi kjører det, kaster det 'ClassCastException' . Nå er poenget at hvis nedkasting ikke er mulig i Java, hvorfor tillates det da av kompilatoren? I Java lar noen scenarier oss utføre nedkasting. Her blir underklasseobjektet referert av overordnet klasse.

fordelene med instagram for personlig bruk

Nedenfor er et eksempel på nedkasting der både de gyldige og de ugyldige scenariene er forklart:

NedkastingExample.java

samlinger 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(); } } 

Produksjon:

Opp- og nedkasting i Java

Hvorfor trenger vi opp- og nedkasting?

I Java bruker vi sjelden Upcasting . Vi bruker den når vi skal utvikle en kode som kun omhandler foreldreklassen. Nedkastende brukes når vi skal utvikle en kode som får tilgang til atferden til barneklassen.

Opp- og nedkasting i Java

Forskjellen mellom Upcasting og Downcasting

Dette er følgende forskjeller mellom Upcasting og Downcasting:

Ja Nei Upcasting Nedkastende
1. Et underordnet objekt er typecastet til et overordnet objekt. Referansen til det overordnede klasseobjektet sendes til underklassen.
2. Vi kan utføre Upcasting implisitt eller eksplisitt. Implisitt nedkasting er ikke mulig.
3. I barneklassen kan vi få tilgang til metodene og variablene til overordnet klasse. Metodene og variablene til både klassene (foreldre og barn) kan nås.
4. Vi kan få tilgang til noen spesifiserte metoder for barneklassen. Alle metodene og variablene for begge klassene kan nås ved å utføre nedkasting.
5. Overordnet p = ny overordnet() Foreldre p = nytt barn()
Barn c = (Barn)p;