package cast_in; class Woo1 { } class Zoo1 extends Woo1 { } class Base1 { public void foo(Woo1 w) { } } class Derived1 extends Base1 { public void foo(Zoo1 z) { } } public class TestHierarchyOverloaded { public Woo1 goo() { return new Zoo1(); } public void main(Derived1 d) { d.foo(/*]*/goo()/*[*/); } }