Introduction
Sometimes, a class needs to do many different jobs. Using multiple interfaces lets a class promise to do all those jobs clearly.
When a class must follow rules from more than one source.
When you want to organize different abilities separately and combine them.
When you want to make sure a class has certain methods from different interfaces.
When you want to build flexible and clear code that can grow easily.