Sobre o static, o modificador só pode ser aplicado a membros de classes, isso inclui: atributos, metodos e classes internas.
E se você tornar o construtor de uma classe private não quer dizer que ela não seja instanciavel, quer dizer que o construtor só pode ser usado dentro dela mesma, mas e se a classe auto-instanciar???! Isso é usado por exemplo no Design Pattern Singleton, ex.:
public class Singleton{
private static Singleton instance = new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return instance;
}
}
Colocar abstract impede que ela seja instanciada, nesse caso ela deve ser estendida para ser usada, aí nesse caso sua subclasse será instanciada!
Mas se uma classe não pode ser instanciada de jeito nenhum, nem diretamente, nem indiretamente, ela não precisa existir, é o caso de colocar um modificar abstract e um final na mesma classe, nem é possivel porque a classe não poderá ser instanciada nunca, o que a torna inutil!