Как правило, вам необходимо переопределить функцию, когда ее использование необходимо изменить.Так, например, скажем, у меня есть класс под названием Car.В этом классе у меня есть функция go (), которая запускает автомобиль.
Теперь, если я расширю этот класс в другой класс с именем PickupTruck, мне нужно переопределить функцию go класса Car, чтобы она не только запускалаавтомобиль, но также прикрепляет трейлер Trucks.
Таким образом, в вашем случае вы должны переопределить метод clone вашего класса CustomEvent, поскольку он должен возвращать новый CustomEvent вместо нового Event.