It's because items can also participate in combat, and because behaviour script has no generic "object" type. As a result, if a character's turn ends in a combat, the the character parameter will be filled in and the item parameter will be null, and the other way around.