In Java, on compilation we get a .class file for each class( including nested classes and interfaces) defined in the source file.
What is the reason for this multiple
That's is a design decision regarding a compilation unit, made by the developers. Compiled classes are usually combined in a jar file.
Extract from Java Language Spec
7.3 Compilation Units CompilationUnit is the goal symbol (§2.1) for the syntactic grammar (§2.3) of Java programs.
Types declared in different compilation units can depend on each other, circularly. A Java compiler must arrange to compile all such types at the same time.