За умовою завдання, клас EnglishTranslator має бути створений у класі Solution - з цим окей... Але я ніяк не можу допетрити, ЧОМУ класс EnglishTranslator має бути статичним якщо він у середені Solution. Так як, якщо його(EnglishTranslator) створити за межами Solution, то він компілює не в статичному стані, а в статичному вже не компілює. Хто може пояснити таку штучку, буду щиро вдячний!
public class Solution {
    public static void main(String[] args) throws Exception {
        EnglishTranslator englishTranslator = new EnglishTranslator(); //
        System.out.println(englishTranslator.translate());
    }

    public static abstract class Translator {
        public abstract String getLanguage();

        public String translate() {
            return "Я переводчик с " + getLanguage();
        }
    }

    static class EnglishTranslator extends Translator{
        @Override
        public String getLanguage(){
            return "английского";
        }

    }
}

/*class EnglishTranslator extends Solution.Translator {
    @Override
    public String getLanguage(){
        return "английского";
    }
}*/