Abstract
There has been recent progress in understanding types for object-oriented languages, but most of it has had little or no impact on real programmers. This tutorial aims to extract from the confusion those topics that are important to programmers who must use or choose an object-oriented language. The tutorial explains the role of types in object-oriented languages, what types can do for programmers, and how the trend towards distributed and heterogeneous systems and object-oriented databases influences what it means for a program to be type-correct. The tutorial describes the difference between objects and values, what types are and why they are good for you, what refinement and subtyping are, what problems they solve, and what problems they do not; why contravariance isnt an unnatural act; why inheritance is a relationship between programs, not between classes. By the end of the tutorial, you will understand how abstract concepts like subtyping can help you solve practical problems such as deciding when one piece of code can be substituted for another.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.