I wanted to make this a comment, but since code tags are not allowed in the comments ....
Regarding your comment on CristopheDs answer:
package bob;
class MySuperHiddenClass {
public MySuperHiddenClass() {
System.out.println("bob");
}
}
and
package bob;
public class MyPublicClass extends MySuperHiddenClass {
}
No constructor has been declared in MyPublicClass, but you can still call the new MyPublicClass from any package.