To those who have read through chapter five, what is the functionality of interfaces in Java? What situations make them necessary?