1. Supports reusability- It means that once a class is designed it works just like a template which can be inherited.
2. Provides better management- It means that abstract classes and interfaces guide you to proceed with the design of a class.
3. Supports platform independence- It means irrespective of hardware base/platform, your class can be compiled and executed through virtual machine.
4. Supports thread- It means to control multiple threads.