I've got an array of objects, some of which use an extended version which contains a function not available in the base class. How can I call that function through the array when the array is defined by the base class?
Example
Shape[] shapes = new Shape[10];
shapes[0] = new Circle(10) //10 == radius, only exists in circle class which extends Shape
shapes[0].getRadius(); //Gives me a compilation error as getRadius() doesn't exist in the
Shape class, only in the extended Circle class. Is there a way around this?
try this
If you're sure your object is of a given subclass, use cast:
Shape
class does not contain the methodgetRadius
and hence without casting the object ofShape
toCircle
, the method will not be visible. So you should use this: