Há algum problema em chamar o método abstrato do construtor em Java? [duplicado]

Esta questão já tem uma resposta aqui:

O que há de errado com chamadas de método substituíveis em construtores? 7 respostas

Vamos supor que eu tenha uma classe básica abstrata que implemente a interface Runnable.

public abstract class Base implements Runnable {

  protected int param;

  public Base(final int param) {
      System.out.println("Base constructor");
      this.param = param;
      // I'm using this param here
      new Thread(this).start();
      System.out.println("Derivative thread created with param " + param);
  }

  @Override
  abstract public void run();
}

E aqui está uma das poucas classes derivadas.

public class Derivative extends Base {

  public Derivative(final int param) {
      super(param);
  }

  @Override
  public void run() {
      System.out.println("Derivative is running with param " + param);
  }

  public static void main(String[] args) {
      Derivative thread = new Derivative(1);
  }

}

O ponto é que eu quero que minha classe Base faça algumas coisas gerais em vez de copiá-lo todas as vezes. Na verdade, está funcionando bem, a saída é sempre a mesma:

Construtor base Derivative thread criado com param 1 Derivative is running with param 1

Mas é seguro IN JAVA iniciar um thread chamando o método abstrato no construtor? Porque, em C ++ e C #, é inseguro na maioria dos casos, tanto quanto eu sei. Obrigado!

questionAnswers(4)

yourAnswerToTheQuestion