Contributions. In this paper, we investigate interfaces' usage in Java applications from two
perspectives:
・We investigate the usage of interfaces as types of classes belonging to different
classtype hierarchies (i.e., interface's type variability).
・We investigate the usage of interfaces as partial types of implementing classes (i.e.,
interface's type completeness).