1, inheritance - you are reusing something already written and adding/overiding new stuff --- 2, this is just using old stuff, so I see no reuse here 3, do not know, but looks like using only components already written 4, nonsense
- question says object reuse, so I'm not sure now. I was thinking more about class reuse.
It's not clear what is intended by the term "object reuse". I'm guessing it means reuse of implementation, so this is my take given that assumption:
Inheritance and composition are the two big mechanisms for reusing functionality in an object-oriented language. In addition, the idea of JavaBeans, as Chandra points out, is to create reusable software components. Without qualification, the fourth option, "attributes", doesn't make much sense.