aspose file tools*
The moose likes Beginning Java and the fly likes ClassCast Exception Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "ClassCast Exception" Watch "ClassCast Exception" New topic
Author

ClassCast Exception

Shelly Biswal
Greenhorn

Joined: Sep 07, 2007
Posts: 17
Hi all,

i compiled the following code and it compiled but gave me a run time exception followed by the code



ERROR

Inside O
I am a Dog
Add Animal
Added Animal
Exception in thread "main" java.lang.ClassCastException
at o.main(o.java:29)

Questions
1) Why did it compile in the first place?
2) At runtime why Cast Exception, i am extending from Dog and casting o to it
3) if i change O = (o)dog to O = dog , it throws compile time error as follows :
found : Dog
required: o
O = dog;
^
1 error

Why so???
bart zagers
Ranch Hand

Joined: Feb 05, 2003
Posts: 234
(2)The variable dog is pointing to a Dog object and you want to cast this to an o object (horrible name by the way), but a Dog is not an o, therefore this is not possible and you get a ClassCastException.
(3)Same reason, a dog is not an o, therefore you can not just assign it to O.
(1)It compiles because it could have worked. When the dog variable would have been pointing to an o object, it would have been fine. (because an o is a Dog)

Try replacing the line

with

and see what happens.

You seem a little confused by the fact that an o is also a Dog, but a Dog is not an o.
[ September 27, 2007: Message edited by: bart zagers ]
 
Don't get me started about those stupid light bulbs.
 
subject: ClassCast Exception
 
Similar Threads
Polymorphism w.r.t. overloading
ArrayStoreException pls explain?
Downcasting
Problems with Lists
Confused with instanceof, please help