Interfaces for strongly-typed object-oriented programming

  • Authors:
  • P. S. Canning;W. R. Cook;W. L. Hill;W. G. Olthoff

  • Affiliations:
  • Hewlett-Packard Laboratories, P.O.Box 10490, Palo Alto, CA;Hewlett-Packard Laboratories, P.O.Box 10490, Palo Alto, CA;Hewlett-Packard Laboratories, P.O.Box 10490, Palo Alto, CA;Hewlett-Packard Laboratories, P.O.Box 10490, Palo Alto, CA

  • Venue:
  • OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
  • Year:
  • 1989

Quantified Score

Hi-index 0.01

Visualization

Abstract

This paper develops a system of explicit interfaces for object-oriented programming. The system provides the benefits of module interfaces found in languages like Ada and Modula-2 while preserving the expressiveness that gives untyped object-oriented languages like Smalltalk their flexibility. Interfaces are interpreted as polymorphic types to make the system sufficiently powerful. We use interfaces to analyze the properties of inheritance, and identify three distinct kinds of inheritance in object-oriented programming, corresponding to objects, classes, and interfaces, respectively. Object interfaces clarify the distinction between interface containment and inheritance and give insight into limitations caused by equating the notions of type and class in many typed object-oriented programming languages. Interfaces also have practical consequences for design, specification, and maintenance of object-oriented systems.