ClassCastException in java

ClassCastException is a RunTimeException or unchecked exception which occurs when JVM unable to cast an object of one type to another type.

Constructors of ClassCastException

  • ClassCastException()

    It creates an instance of the ClassCastException class.

  • ClassCastException(String s)

    It creates an instance of the ClassCastException class by using the specified string as message.

Note: ClassCastException is related to casting of objects from one type to another. In java, up-casting is done implicitly (sub class object cast to super class type) i.e. no explicit conversion is required but in case of down-casting there is no implicit conversion. We need to explicitly cast super class object to sub class type which results into the possibilities of ClassCastException.


class SuperClass {
    public SuperClass() {
        System.out.println("Inside SuperClass constructor.");
final class SubClass extends SuperClass {
    public SubClass() {
        System.out.println("Inside SubClass constructor.");
public class Main {
    public static void main(String[] args) {
        SuperClass superObject = new SuperClass();
        SubClass subObject = new SubClass();
        superObject = subObject; // Valid statement
        subObject = superObject; //Class cast exception here

Output error: incompatible types: SuperClass cannot be converted to SubClass
        subObject = superObject; //Class cast exception here
1 error

How to prevent ClassCastException

  • We need to careful in case of down-casting. New object type should one of it’s super class.
  • Use Generics, which provides compile time checking.

Java interview questions on Exception Handling

Please follow and like us:
Content Protection by