at:tutorial:objects
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
at:tutorial:objects [2007/07/10 12:46] – fixed tvcutsem | at:tutorial:objects [2007/07/10 22:04] – expanded tvcutsem | ||
---|---|---|---|
Line 120: | Line 120: | ||
This cloning semantics reinforces the semantics of **IS-A** as promoting a unique link between a parent and a child object. **IS-A** delegation most closely corresponds to class-based inheritance. | This cloning semantics reinforces the semantics of **IS-A** as promoting a unique link between a parent and a child object. **IS-A** delegation most closely corresponds to class-based inheritance. | ||
- | ===== Delegation and dynamic inheritance | + | ===== Delegation and Dynamic Inheritance |
- | The parent of an object is bound to a field named '' | + | |
+ | In AmbientTalk, | ||
+ | |||
+ | Because '' | ||
< | < | ||
- | > def openConnection := object: {...}; | + | def openConnection := object: |
- | > def closedConnection := object: {...}; | + | def send(msg) |
- | > def connection := object: { | + | }; |
- | def open() { | + | def closedConnection := object: |
- | super := openConnection.new(); | + | def send(msg) |
- | }; | + | }; |
- | def close() { | + | def connection := object: |
- | super := closedConnection.new(); | + | def init() |
- | }; | + | |
- | } | + | }; |
+ | | ||
+ | super := openConnection; | ||
+ | }; | ||
+ | def close() { | ||
+ | super := closedConnection; | ||
+ | }; | ||
+ | } | ||
</ | </ | ||
- | < | + | In the above example, the '' |
- | In AmbientTalk, | + | |
+ | < | ||
+ | In AmbientTalk, | ||
</ | </ | ||
at/tutorial/objects.txt · Last modified: 2013/05/17 20:23 by tvcutsem