Бессмысленно переопределять метод, чтобы вызывать только родительский элемент, поэтому, если код, который вы опубликовали, это все, что вы делаете, не переопределяйте его.
Делая ваше TetraQueue очередью , вы говорите, что его можно использовать всегда, когда может быть очередь . Добавляя к нему новый метод, который скрывает оригинальный метод, если вызывающая сторона знает его TetraQueue, тогда вы возитесь с этим контрактом.
Если бы я хотел того же поведения, что и Очередь, я бы использовал Очередь ; если бы я хотел чего-то другого, я бы использовал композицию, а не наследование.