public abstract void Remove(Word word);
public override void Remove(Word word) { throw new NotImplementedException(); }
public abstract void Add(Word word);
public override void Remove(Word c) { Console.WriteLine("Cannot remove from a leaf"); }
public override void Add(Word c) { Console.WriteLine("Cannot add to a leaf"); }
public override void Remove(Word component) { _children.Remove(component); }
public override void Add(Word component) { _children.Add(component); }