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. Tempero | 1 | 853 | 73.68 |
Hong Yul Yang | 2 | 94 | 7.33 |
James Noble | 3 | 1683 | 163.52 |