Yup, your observations are correct.
In a compilation
unit (a .java file) you can have at
most one public class or interface. IF you have a public class or interface, then you must name the compilation unit the same name as the public class or interface.
As far as implementing/extending multiple interfaces, this is how
java provides the ability to have the benefits of multiple-inheritance without the problems associated with it.