There are a few key concepts that you ought to know. In particular, think about each of the languages we study and how they handle each of these concepts.Inheritance does not necessarily mean new object is a subtype of the original one. Subtyping is a relation on interfaces, inheritance is a relation on implementations.
- Dynamic Lookup - when a message is sent to an object, the method executed is determined by the object implementation. Different objects can respond differently to the same message. The response is not based on the static property of the variable or pointer.
- Abstraction - implementation details are hidden inside a program unit and exposed via a specific interface. Usually a set of public methods manipulate private data.
- Subtyping - if object A has all the funtionality of another object B, we can use A in place of B in contexts expecting A. Subtyping means that the subtype has at least as much functionality as the base type.
- Inheritance - reuse definition of one type of object when defining another object.
The first object-oriented language. We went over the drawing on pg. 306 of the text and talked about why everything was set up the way it was.
A user friendly programming language with a table-based editor for generating objects. There is lots of terminology associated with Smalltalk, found on pg 312 of the text. Remember that everything in Smalltalk is an object.We went over the runtime representation of the ColoredPoint object found on page 317 of the text. We also looked at the diagram shown on pg 325 showing subtyping and inheritance relations.
We answered a couple of specific concerns people had on the midterm.