There's no definitive answer... it depends on the classes, and how they differ. But in general, one large class will be more efficient that two small ones.
There is an overhead per class (both from the file itself, and the index entry in the JAR). There is an overhead in the class for each method (from the method name and various data structures that describe the method). You can get some idea of the size of these by compiling an empty class (with no methods), then compiling a class with one method (that contains no code).
So a class with a few large methods is more efficient than a class with many small methods. Interfaces are particularly inefficient, because they contain only names and internal data structures, and no code.
If you go for the single class option, then presumably you would have some logic like:
Code:
if (isJumpingEnemy) {
// do jumping enemy stuff
}
This takes space too, but very little.
If you had an enormous number of these blocks, then using separate classes might manage to be more efficient... but I doubt it. Even a very small class compiles to a few hundred bytes, and you can get a lot of "if" blocks for that.
Graham.