普通は A 型の参照に入れると思うけど。
大雑把に言って、

A a;
if(hoge) {
 a = new B(foo);
} else if(hage) {
 a = new C(bar);
} else {
 a = new D(baz);
}
a.hige();

みたいなことがしたいんじゃないの?
まあ、B, C, D に拡張機能がある場合は
直接 B, C, D を使う場合もあるだろうけど。