override è un hint al compilatore e serve a forzare il compilatore stesso a verificare che il prototipo della funzione base e di quella derivata siano uguali. Se infatti la funzione di base fosse:
codice:
Base::BeginPlay() const;
e quella di APallina fosse:
codice:
APallina::BeginPlay(); // manca il const
il compilatore le tratta come due funzioni diverse e non ti dice niente.
Viceversa se fosse:
codice:
Base::BeginPlay() const;
e quella di APallina fosse:
codice:
APallina::BeginPlay() override; // manca il const
il compilatore (in base ai settaggi), può lanciare un warning o un errore e dirti che APallina::BeginPlay(); (senza il const) non ridefinisce nessuna funzione di Base.
Per quanto riguarda Super è un typedef della classe base e serve a richiamare esplicitamente la funzione base.