Last Updated : 23 Jul, 2025
Typecasting is the assessment of the value of one primitive data type to another type. In java, there are two types of casting namely upcasting and downcasting as follows:
In order to perform class type casting we have to follow these two rules as follows:
Implementation:
(A) Upcasting
Example 1
Java
// Importing input output classes
import java.io.*;
// Class 1
// Parent class
class Parent
{
// Function
void show()
{
// Print message for this class
System.out.println("Parent show method is called");
}
}
// Class 2
// Child class
class Child extends Parent
{
// Overriding existing method of Parent class
@Override
// Same Function which will override
// existing Parent class function
void show()
{
// Print message for this class
System.out.println("Child show method is called");
}
}
// Class3
// Main class
class GFG
{
// Main driver method
public static void main(String[] args)
{
// Creating a Parent class object
// but referencing it to a Child class
Parent obj = new Child();
// Calling the show() method to execute
obj.show();
}
}
Child show method is called
Output explanation: Here parent class object is called but referred to the child's class object. Hence, one can relate this with dynamic polymorphism or function overriding.
(B) Downcasting
Example 2
Java
// Java Program to illustrate Downcasting
// Importing input output classes
import java.io.*;
// Class 1
// Parent class
class Vehicles {
}
// Class 2
// Child class
class Car extends Vehicles {
static void method(Vehicles v)
{
//
if (v instanceof Car) {
// Downcasting
Car c = (Car)v;
// Display message
System.out.println("Downcasting performed");
}
}
// Main driver method
public static void main(String[] args)
{
// Creating an object of Vehicle class
// and referring it to Car class
Vehicles v = new Car();
Car.method(v);
}
}
Downcasting performed
NOTE : Without perform upcast if we try to downcast , ClassCastException will be thrown.
- It is a runtime exception or unchecked exception.
- It is class, present in java.lang package.
- It can be avoided by using a operator known as 'instanceof'.
Example 3
Java
// Java Program showing ClassCastException
// Importing input output classes
import java.io.*;
// Class 1
// Parent class/ Member class
class Member {
// Member variable of this class
String name;
long phone;
// Member function of this class
void chat()
{
// Print message of Member/ Child class
System.out.println(
name + " : chatting in whatsapp group");
}
}
// Class 2
// Child class/ Admin class
class Admin extends Member {
// Member function of this class
void addUser()
{
// Print message of Admin/ Parent class
System.out.println(
name
+ " : adding a new user in whatsapp group");
}
}
// Class3 - Main class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating an object Ad
Member mem = new Admin();
// Upcasting access only general property of
// superclass
// Custom entry for Member class
mem.name = "Sneha";
mem.phone = 9876543210l;
// Calling function
mem.chat();
Admin ad = (Admin)mem;
// Downcast to access specific property of subclass
ad.addUser();
}
}
Sneha : chatting in whatsapp group Sneha : adding a new user in whatsapp group
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4