Title
What programmers do with inheritance in java
Abstract
Inheritance is a distinguishing feature of object-oriented programming languages, but its application in practice remains poorly understood. Programmers employ inheritance for a number of different purposes: to provide subtyping, to reuse code, to allow subclasses to customise superclasses' behaviour, or just to categorise objects. We present an empirical study of 93 open-source Java software systems consisting over over 200,000 classes and interfaces, supplemented by longitudinal analyses of 43 versions of two systems. Our analysis finds inheritance is used for two main reasons: to support subtyping and to permit what we call external code reuse. This is the first empirical study to indicate what programmers do with inheritance.
Year
DOI
Venue
2013
10.1007/978-3-642-39038-8_24
ECOOP
Keywords
Field
DocType
different purpose,longitudinal analysis,open-source java software system,main reason,external code reuse,object-oriented programming language,distinguishing feature,empirical study
Object-oriented design,Composition over inheritance,Programming language,Reuse,Computer science,Software system,Theoretical computer science,Code reuse,Subtyping,Java,Multiple inheritance
Conference
Volume
ISSN
Citations 
7920
0302-9743
13
PageRank 
References 
Authors
0.62
18
3
Name
Order
Citations
PageRank
Ewan D. Tempero185373.68
Hong Yul Yang2947.33
James Noble31683163.52