void Hit(object hit) { EnemyAbstract hitAsEnemy = (EnemyAbstract)hit; //alternatively EnemyAbstract hitAsEnemy2 = hit as EnemyAbstract; if (hitAsEnemy != null) { hitAsEnemy.Movement(); } IDamagable damageableHit = (IDamagable)hitAsEnemy; if (damageableHit != null) { damageableHit.TakeDamage(); } }