Reuse mechanisms, such as inheritance in an object-oriented programming approach, are useful to professional programmers but fail to support the occasional programming needs of the end-user. Consequently, a surprisingly high percentage of end-users resort to "copy and paste" approaches for reuse instead of making appropriate use of object-oriented techniques. Visual Analogies are a reuse mechanism for end-users who otherwise would have resorted to "copy and paste." This paper illustrates how visual analogies avoid some of the problems intrinsic to object-oriented programming by eliminating the pitfall of overgeneralization and the need to create non-concrete programming abstractions.