About: Method overriding is a research topic. Over the lifetime, 33 publications have been published within this topic receiving 684 citations. The topic is also known as: Override.
TL;DR: A fresh approach to OO verification is advocated that focuses on the distinction and relation between specifications that cater to calls with static dispatching from those for calls with dynamic dispatching, and formulate a novel specification subsumption that can avoid code re-verification, where possible.
Abstract: Conventional specifications for object-oriented (OO) programs must adhere to behavioral subtyping in support of class inheritance and method overriding. However, this requirement inherently weakens the specifications of overridden methods in superclasses, leading to imprecision during program reasoning. To address this, we advocate a fresh approach to OO verification that focuses on the distinction and relation between specifications that cater to calls with static dispatching from those for calls with dynamic dispatching. We formulate a novel specification subsumption that can avoid code re-verification, where possible. Using a predicate mechanism, we propose a flexible scheme for supporting class invariant and lossless casting. Our aim is to lay the foundation for a practical verification system that is precise, concise and modular for sequential OO programs. We exploit the separation logic formalism to achieve this.
TL;DR: This paper proposes an automatic region inference system for a core subset of Java that supports classes and methods that are region- polymorphic, with region-polymorphic recursion for methods.
Abstract: Region-based memory management offers several important potential advantages over garbage collection, including real-time performance, better data locality, and more efficient use of limited memory. Researchers have advocated the use of regions for functional, imperative, and object-oriented languages. Lexically scoped regions are now a core feature of the Real-Time Specification for Java (RTSJ)[5].Recent research in region-based programming for Java has focused on region checking, which requires manual effort to augment the program with region annotations. In this paper, we propose an automatic region inference system for a core subset of Java. To provide an inference method that is both precise and practical, we support classes and methods that are region-polymorphic, with region-polymorphic recursion for methods. One challenging aspect is to ensure region safety in the presence of features such as class subtyping, method overriding, and downcast operations. Our region inference rules can handle these object-oriented features safely without creating dangling references.
TL;DR: This work develops a static type system for concurrent object-oriented programming that can give clear accounts for complex mechanisms such as inheritance and method overriding within a simple framework.
Abstract: A number of attempts have been made to obtain type systems for object-oriented programming. The view that lies common is “object-oriented programming = l-calculus + record.” Based on an analogous view “concurrent object-oriented programming = concurrent calculus + record,” we develop a static type system for concurrent object-oriented programming. We choose our own Higher-Order ACL as a basic concurrent calculus, and show that a concurrent object-oriented language can be easily encoded in the Higher-Order ACL extended with record operations. Since Higher-Order ACL has a strong type system with a polymorphic type inference mechanism, programs of the concurrent object-oriented language can be automatically type-checked by the encoding in Higher-Order ACL. Our approach can give clear accounts for complex mechanisms such as inheritance and method overriding within a simple framework.
TL;DR: OOLP as mentioned in this paper integrates the superior modeling capabilities of object-oriented paradigm in the declarative framework of logic programming and is extended to a practical objectoriented database language OOLP+ by adding some extra-logical features.
Abstract: OOLP integrates the superior modeling capabilities of object-oriented paradigm in the declarative framework of logic programming. Method invocation in OOLP is given a precise model theoretic semantics which is consistent with that of logic programming. OOLP is extended to a practical object-oriented database language OOLP+ by adding some extra-logical features. OOLP+ allows object identity, multiple inheritance, method overriding and dynamic updating among other features. OOLP+ is implemented by translating it to Prolog. The translated programs executes without metainterpretation. This allows the use of all Prolog or Datalog optimization techniques. In this respect OOLP+ is unique among alternative proposals presented in the literature.
TL;DR: This work uses Java as a vehicle for OO instruction, but rather than expose CS1 students to the intricacies of Swing the authors employ an elegant and small graphics package called NGP, which allows students to create event-driven graphical programs using only inheritance and method overriding.
Abstract: Teaching object-oriented programming in CS1 is hard. Keeping the attention of CS1 students is perhaps even harder. In our experience the former can be done successfully with very satisfying results by focusing on the fundamental principles of object-orientation, such as inheritance, polymorphism and encapsulation. The latter can be done by having students create graphical event-driven programs. Care must be taken, however, since teaching graphics can easily distract students and certainly takes time away from the fundamentals being taught. We use Java as a vehicle for OO instruction, but rather than expose CS1 students to the intricacies of Swing we employ an elegant and small graphics package called NGP. NGP allows students to create event-driven graphical programs using only inheritance and method overriding. We describe how we use NGP to enhance rather than detract from our teaching of fundamental OO principles.