Решилось таким трюком:
public class Sequence extends Token {
protected TokenChain core = new TokenChain();
// создание пустой цепочки
public Sequence() {
}
// задание содержимого цепочки из другого объекта
protected void assign(Sequence seq) {
core = seq.core;
}
//...
}
public class Number extends Sequence {
private Number(Sequence seq) {
assign(seq);
}
//...
}
Не пойму, в чём идеологическая разница? Почему к protected-члену обратиться нельзя, а к protected-методу -- можно?
И вообще. Сейчас просто конструктор дополнительный к Sequence присобачу...