• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Casting question

 
Sani babangida
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have two classes that are identical . they both extend a class A

b ---extends -->A
c ---extends--->A

is it possible to cast from b to c
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24212
35
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
No, it's not possible. In C++, you can get away with this by using an "old-style" cast; but in Java, all casts are checked at runtime, and this check would always fail.
 
Anton Uwe
Ranch Hand
Posts: 122
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You would need to do a double casting like "C c= (C)(A)b;". The compiler would be happy then, but at runtime...
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Posts: 15459
42
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Let's change the names of your classes a bit, then it will become more clear why this doesn't work.

Dog --- extends --> Animal
Cat --- extends --> Animal

If you have a Dog, can you cast it to a Cat - in other words, if you have a Dog, can you pretend that it's a Cat? No, you can't, because a Dog simply isn't a Cat.

(Remember that inheritance means "is a"; a Dog is an Animal, and a Cat is an Animal).
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic