Não compila

[code]public class staticSuper {

static{
	System.out.println("Super static Block");
}

staticSuper(){
System.out.println(“Super contructor”);
}
}
public class StaticTests extends staticSuper{
static int rand;

static{
	rand=(int) (Math.random()*6);
	System.out.println("static block "+rand);
}
 StaticTests() {

System.out.println(“Constructor”);
}

public static void main(String[] args){
	System.out.println("in main");
	StaticTests st=new StaticTests();
}

}[/code]

Esse código não dá certo, o Eclipse dá a seguinte mensagem: [color=red]The public type StaticTests must be defined in its own file[/color].
no: public class StaticTests extends staticSuper{ static int rand;

O que será? por que não compila?

O motivo é exatamente o da mensagem, não tem como ser mais claro do que isso:

Você precisa definir a classe StaticTests no arquivo StaticTests.java. O Java não permite ter duas classes públicas no mesmo arquivo.

o java não permite 2 classes publicas no mesmo arquivo.

o que você poderia fazer é: ‘define StaticTests in its own file’, ou ‘staticSuper must be defined as private or without public modifield’