Another clue point of OOP is inheritance. Let's form an analogy with a person who bought an old house. Having bought it, the person does not normally demolish old house and re-build it from scratch, but rather he will usually make improvements on it. In OOP terms it means the person derives from the existing house, or saying in other words, he extends it, so he is to build subclasses of the house that already exists. The new house inherits from the existing one.
Creating new improved objects using new definitions that extend existing definitions is very common practice. This is one of the mottos of OOP, that encourages the reuse of existing elements of programs.
Do not reinvent the wheel! Reuse the code, do not reinvent!