Uses and abuses of inheritance

Abstract
For several years, software engineers have debated the impact that inheritance mechanisms have on software development. Inheritance can be ignored until coding begins, or it can be used early during analysis to model conceptual abstractions; specifically, IS_A relations between classes in a problem domain. Unfortunately, the conceptual structuring relevant to analysis can conflict with the practice of code reuse. In this paper, we explain why this conflict arises and suggest ways of dealing with it. We review the basic facilities provided by inheritance mechanisms in object-oriented programming languages and survey their use in programming. Legitimations for the use of inheritance are described and evaluated. We conclude with a tentative proposal for the development of more powerful inheritance mechanisms.

This publication has 0 references indexed in Scilit: