Добрый день или вечер, сейчас прохожу 16 лекцию и после решения задачи у меня возник вопрос. И так имеется кусок кода.
public static class Politician extends Thread {
        private volatile int utteranceCount;

        public Politician(String name) {
            super(name);
            start();
        }

        public void run() {
            while (utteranceCount < totalSpeechCount * utterancesPerSpeech) {
                utteranceCount++;
            }
        }

        public int getSpeechCount() {
            return utteranceCount / utterancesPerSpeech;
        }

        @Override
        public String toString() {
            return String.format("%s сказал речь %d раз", getName(), getSpeechCount());
        }
    }

Не привожу всю задачу ввиду громоздкости. И так мой вопрос в следующем, в конструкторе стартует выполнение потока при помощи вызова метода start(), точкой входа в программу при многопоточном программировании(аналогия метода main) является метод run() из предыдущих лекций известно, что при создании класса конструктор выполняется последним, то есть непосредственно перед ним все нестатические методы обьекта, метод run() не статический, соответсвенно он должен начать выполняться первым? Или я чего - то не понимаю?