A. To facilitate the reusability of code
B. To help modular programming
C. To facilitate the conversion of data types
D. To extend the capabilities of a class