Интерфейс нужен не для того, что бы вы не забыли добавить какой-то метод. Он нужен, что бы вы работали, с контрактами. Например:
public function addToSwimmingPool(Swimming $animal): void
{
$this->pool[] = $animal;
}
Так вы гарантируете, что добавите в бассейн только плавающих животных.
Без использования интерфейса, пришлось бы делать так:
public function addToSwimmingPool($animal): void { ... }
Тут вы могли добавить что угодно в массив. И потом где-нибудь программа бы сломалась, так как у переданных объектов нет нужных методов.
public function addToSwimmingPool(Penguin $animal): void { ... }
А так вы кроме пингвинов никого больше не добавите.