R supports two functional Object-Oriented Programming systems, S3 and S4, which are largely compatible but require users to navigate two distinct systems. The new S7 system aims to unify S3 and S4 to promote interoperability. Several commonalities exist among these systems, including reifying classes and achieving polymorphism through generic dispatching. Base R has integrated patches to ease S3-based packages like S7 in implementing these features. The addition of chooseOpsMethod() allows for improved method dispatching, particularly beneficial for packages like reticulate that bridge Python’s OOP with R’s S3 system. This forward-looking approach in enhancing R’s OOP capabilities is expected to benefit a wide range of users and systems.
https://blog.r-project.org/2024/05/17/generalizing-support-for-functional-oop-in-r/index.html