Recently I defined Object-oriented programming (OOP) as a program design pattern where employing abstraction and inheritance we can solve polymorphic problems including but not limited to decoupling. Polymorphism refers to the use of an abstraction to represent multiple different concrete types. Do you know a better and shorter definition?