class B{} abstract class A { abstract B foo(); void baz(B b){} void bar(A a){ baz(a.foo()); } }