OOP has nothing to do with either of terms you have mentioned. OOP is about interfaces. Let me present great example of big system that uses OOP and has nothing to do with composition and inheritance: UNIX filesystem
We have different kind of files in UNIX:
And most of UNIX tools (like cat, head, tail, etc.) will work with either of them without any problem. That is what OOP what it is, sharing common interface between different implementations.