| Author |
parantheses in explicit casting
|
saravanan ragunathan
Ranch Hand
Joined: Aug 02, 2010
Posts: 84
|
|
when i use explicit casting without outer parantheses (Dog) animal.eat(); instead of ((Dog) animal).eat();
i am getting compilation error...what these parantheses tell to the compiler..how the compiler understand
this explicit casting with and without outer parantheses
|
"I Love Java Ranch"
|
 |
Ankit Garg
Saloon Keeper
Joined: Aug 03, 2008
Posts: 9189
|
|
|
If you write (Dog) animal.eat(), it means you are trying to typecast the value returned by the eat method to Dog type. But the eat method has void return type thus it doesn't return anything so you can't typecast it...
|
SCJP 6 | SCWCD 5 | Javaranch SCJP FAQ | SCWCD Links
|
 |
Matthew Brown
Bartender
Joined: Apr 06, 2010
Posts: 3793
|
|
|
It's to do with the precedence. The "." operator has higher precedence than the cast, so it is performed first unless you put an extra set of brackets in. That's why you get the behaviour Ankit describes.
|
 |
 |
|
|
subject: parantheses in explicit casting
|
|
|