Es habitual liarse con el tema del contexto estático y "no estático".
El método main, que pertenece a tu clase
EjemploHilos, es estático:
public static void main(String[] args)
Esto implica dos cosas:
1- No es necesario instanciar un objeto de la clase
EjemploHilos para poder ejecutar este método main. Precisamente por eso los main son siempre estáticos.
2- Al ser un método que está en un "contexto estático" no puede acceder a variables, métodos, clases... que no estén también en un contexto estático.
Y este es el problema que tienes. Las clases internas
HiloA,
HiloA , etc... no son estáticas, así que el main no puede acceder a ellas.
¿Cómo solucionarlo? Lo más directo y sencillo, es declarar todas esas clases también como estáticas. Y asunto resuelto.
public static class HiloA implements Runnable{