Suppose that one day you've just finished your Car
class. It's been plugged into your traffic simulation which is
chugging along merrily simulating traffic. Then your pointy haired
boss rolls in the door, and tells you that he needs the
Car
class to not accelerate past the 70 miles per hour
(pointy haired bosses rarely understand the metric system) even if
the car's a Ferrari with a maximum speed in excess of 200 miles per
hour.
What are you going to do? Your first reaction may be to change the class that you already wrote so that it limits the speed of all the cars. However you're using that class elsewhere and things will break if you change it.
You could create a completely new class in a different file,
either by starting from scratch or by copying and pasting. This
would work, but it would mean that if you found a bug in the
Car
class now you'd have to fix it in two files. And if you
wanted to add new methods to the Car
class, you'd have
to add them in two files. Still this is the best you could do if
you were writing in C or some other traditional language.