Explain the higher-order functions of object-oriented programming, including encapsulation, abstraction, inheritance, polymorphism, composition, and instantiation.