1) разве этот код не создаст бесконечную рекурсию? if (s instanceof String) { synchronized (this) { return this.append((String) s); } } 2) какой смысл от этого кода если он никогда не выполнится? (ведь в функция append() заходят только обьекты интерфейса CharSequence, а класс Solution его не реализует if (s instanceof Solution) { synchronized (this) { return this.appendThis((Solution) s); } }