abstract class Player {
public abstract IWeapon GetEquippedWeapon();
}
class MonsterPlayer : Player {
// Here we can specify that the weapon will always be a ClawsWeapon for a MonsterPlayer:
public override ClawsWeapon GetEquippedWeapon() {
// ...
}
}