This paper considers the object-oriented paradigm's ability to produce reusable and extendable software. In so doing it identifies the strengths and weaknesses of the paradigm, with respect to reusability, and compares these with those of a several representative object-based methods. Further, consideration is given to the main method of achieving reusability in the object-oriented paradigm, i.e. the inheritance hierarchy. The impact inheritance can have on the maintainability of the software components produced is considered using an information flow complexity metric. The paper concludes that although the object-oriented paradigm will assist in producing reusable and extendable software it must be well supported by software tools; and, careful control and management of the development of components for reuse must be undertaken, if a reasonable level of maintainability is also to be achieved. Transactions on Information and Communications Technologies vol 9, © 1994 WIT Press, www.witpress.com, ISSN 1743-3517