20.4. Reuse Through Association¶
Inheritance is not the only way to reuse code. Association occurs when an object stores a reference to one or more objects from a different class in one of its instance variables (attributes). The object is thus able to execute code on the objects it embeds within itself.
For example, our LabeledPoint
example could have been implemented as follows:
The first thing to notice is that LabeledPoint
does not inherit from Point
in the code above. Instead, its constructor
creates a Point
and stores a reference to it in its point
instance variable so that it can be used by the other methods.
Next, notice how the distanceFromOrigin()
method uses the code in
Point` by invoking it. We say that ``LabeledPoint
’s distanceFromOrigin()
delegates its implementation to Point
’s implementation.
Finally, notice how the __str__()
method also uses the code in
Point
by calling str(self.point)
.
- A class includes objects from another class as an attribute.
- In association one class with include objects from another class as an attribute.
- A class inherits attributes from another class.
- This is only true for inheritance.
- A class can execute code on an object from another class.
- In association one class can execute code on an object from another class.
- A class can override a method from another class.
- This is only true for inheritance. A class can not override a method from another class unless it inherits from that class.
Q-2: Which of the following are true about association?