I will join you on that hill, just make a pureish function/method that does the thing its supposed to do and job done. Although in 10% of cases OOP and inheritance is useful
Actually all four ways are possible: with either, neither, or both.
The GoF book says to prefer composition over inheritance much of the time, in an early page of the book.