抽象的な質問で申し訳ないんですが・・・。

バイトコードが一つあって、それの実行中に設計外の他のクラスを読ませる・・・例えば
本体があって、プラグインとなるコードを用意して本体の実行中に指定すれば、
新しい関数が使える!(もちろん引数と返り値はあわせておく)、みたいなことは
Javaで可能なのでしょうか?