Class Type Casting in Java
Last Updated :
17 Sep, 2021
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:
- Upcasting is casting a subtype to a super type in an upward direction to the inheritance tree. It is an automatic procedure for which there are no efforts poured in to do so where a sub-class object is referred by a superclass reference variable. One can relate it with dynamic polymorphism.
- Implicit casting means class typecasting done by the compiler without cast syntax.
- Explicit casting means class typecasting done by the programmer with cast syntax.
- Downcasting refers to the procedure when subclass type refers to the object of the parent class is known as downcasting. If it is performed directly compiler gives an error as ClassCastException is thrown at runtime. It is only achievable with the use of instanceof operator The object which is already upcast, that object only can be performed downcast.
In order to perform class type casting we have to follow these two rules as follows:
- Classes must be “IS-A-Relationship “
- An object must have the property of a class in which it is going to cast.
Implementation:
(A) Upcasting
Example 1
Java
import java.io.*;
class Parent
{
void show()
{
System.out.println( "Parent show method is called" );
}
}
class Child extends Parent
{
@Override
void show()
{
System.out.println( "Child show method is called" );
}
}
class GFG
{
public static void main(String[] args)
{
Parent obj = new Child();
obj.show();
}
}
|
Output
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
import java.io.*;
class Vehicles {
}
class Car extends Vehicles {
static void method(Vehicles v)
{
if (v instanceof Car) {
Car c = (Car)v;
System.out.println( "Downcasting performed" );
}
}
public static void main(String[] args)
{
Vehicles v = new Car();
Car.method(v);
}
}
|
Output
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
import java.io.*;
class Member {
String name;
long phone;
void chat()
{
System.out.println(
name + " : chatting in whatsapp group" );
}
}
class Admin extends Member {
void addUser()
{
System.out.println(
name
+ " : adding a new user in whatsapp group" );
}
}
class GFG {
public static void main(String[] args)
{
Member mem = new Admin();
mem.name = "Sneha" ;
mem.phone = 9876543210l;
mem.chat();
Admin ad = (Admin)mem;
ad.addUser();
}
}
|
Output
Sneha : chatting in whatsapp group
Sneha : adding a new user in whatsapp group
Share your thoughts in the comments
Please Login to comment...