public override void Remove(Component c)
 {
     throw new NotImplementedException("Cannot remove the compoment");
 }
 public override void Add(Component c)
 {
     throw new NotImplementedException("Cannot add the compoment!");
 }
 public abstract void Remove(Component c);
 public abstract void Add(Component c);
 public override void Remove(Component c)
 {
     children.Remove(c);
 }
 public override void Add(Component c)
 {
     children.Add(c);
 }