The ClassCastException thrown to indicate that your code has attempted to cast an object to a subclass of which it is not an instance. Casting only works when the casted object follows an is a relationship to the type you are trying to cast to.
When will be ClassCastException is thrown:
When you try to cast an object of Parent class to its Child class type, this exception will be thrown.
When you try to cast an object of one class into another class type that has not extended the other class or they don’t have any relationship between them.