Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
The C++ programming language
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Research directions in object-oriented programming
Abstraction mechanisms in the BETA programming language
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Multi-sequential execution in the BETA programming language
ACM SIGPLAN Notices
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
Introduction to the literature on object-oriented design, programming, and languages
ACM SIGPLAN OOPS Messenger
Hi-index | 0.00 |
The main thing with the sub-class mechanism as found in languages like C++, SIMULA and Smalltalk is its possibility to express specializations. A general class, covering a wide range of objects, may be specialized to cover more specific objects. This is obtained by three properties of sub-classing: An object of a sub-class inherits the attributes of the super-class, virtual procedure/method attributes (of the superclass) may be specialized in the sub-class, and (in SIMULA only) it inherits the actions of the super-class.In the languages mentioned above, virtual procedures/methods of a super-class are specialized in sub-classes in a very primitive manner: they are simply re-defined and need not bear any resemblance of the virtual in the super-class. In BETA, a new object-oriented language, classes and methods are unified into one concept, and by an extension of the virtual concept, virtual procedures/methods in sub-classes are defined as specializations of the virtuals in the super-class. The virtual procedures/methods of the sub-classes thus inherits the attributes (e.g. parameters) and actions from the "super-procedure/method".In the languages mentioned above only procedures/methods may be virtual. As classes and procedures/methods are unified in BETA this gives also virtual classes. The paper demonstrates, how this may be used to parameterize types and enforce constraints on types.