Two Laptop Bag
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes DOUBT on DOWNCASTING Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login


Win a copy of The Mikado Method this week in the Agile and other Processes forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Reply Bookmark "DOUBT on DOWNCASTING" Watch "DOUBT on DOWNCASTING" New topic
Author

DOUBT on DOWNCASTING

debasmita pattnayak
Ranch Hand

Joined: Apr 12, 2007
Posts: 94
Hi,
i am really confused with the concept of downcasting.can anyone explain me in context to the following question:

class Vehicle {}
class Car extends Vehicle {}

class VarArgSeven {
public static void washVehicle(Vehicle ... v) {
for(Vehicle vv : v) {
Car c = (Car)vv;
System.out.print(c);
}
}
public static void main(String[] args) {
//insert the line here
}
}

Options :

a) washVehicle(new Car[] { new Car()});
b) washVehicle(new Vehicle[]{new Car(), new Vehicle()});
c) washVehicle(new Car(), new Car());
d) washVehicle(new Vehicle(), new Vehicle());
e) none of the above.

the answer to this is a and c but why not b and d too.
please explain.
thanks


debasmita
Keith Lynn
Ranch Hand

Joined: Feb 07, 2005
Posts: 2341
The reason is that even though Car extends Vehicle, if the runtime type of an object is Vehicle, you cannot refer to it as a Car.
debasmita pattnayak
Ranch Hand

Joined: Apr 12, 2007
Posts: 94
hi keith,
thanks for the reply...
i want to know then when is downcasting needed and what is the legal way of doing that? can you please sustain the same with an example
thanks in advance!
John Stone
Ranch Hand

Joined: May 04, 2007
Posts: 332
debasmita pattnayak
Ranch Hand

Joined: Apr 12, 2007
Posts: 94
hi,
thanks a lot!
now its more clear to me than before.
 
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to run our stuff on 16 servers instead of 3.
 
subject: DOUBT on DOWNCASTING
 
Similar Threads
need reply
Can any one explain me this
Help in generics....
object ref types trip me up all the time
Casting