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/06/29 13:06] – jorge | at:tutorial:objects [2007/06/29 14:31] – jorge | ||
---|---|---|---|
Line 49: | Line 49: | ||
Every object understands the message '' | Every object understands the message '' | ||
- | ===== Delegation and Dynamic Inheritance | + | ===== Delegation and cloning |
- | AmbientTalk features object inheritance or delegation. By means of delegation, an object can reuse and extend the defintion of another establishing a child-parent relationship. We identify two kinds of delegation relationships: | + | AmbientTalk features object inheritance or delegation. By means of delegation, an object can reuse and extend the defintion of another establishing a parent-child |
- | The following code shows how to extend objects with a **IS-A** relationship. | + | The following code shows how to extend objects with a **IS-A** relationship. It uses the '' |
< | < | ||
Line 63: | Line 63: | ||
</ | </ | ||
- | The following code shows how to extend objects with a **SHARE-A** relationship. | + | The following code shows how to extend objects with a **SHARE-A** relationship. It uses the '' |
< | < | ||
Line 74: | Line 74: | ||
</ | </ | ||
+ | ===== Delegation and dynamic inheritance ===== | ||
+ | The parent of an object is bound to a field named '' | ||
- | These relationships defines two different semantics for clonning child objects | + | < |
- | + | > def OpenConnection := object: {...}; | |
- | + | def ClosedConnection := object: {...}; | |
- | in the way | + | def Connection := object: { |
- | + | def open() { | |
- | + | super := OpenConnection.new(); | |
- | + | }; | |
- | . While both relationships | + | def close() { |
- | + | super := ClosedConnection.new(); | |
- | Extending an object with a **is-a** relationship | + | }; |
- | + | } | |
- | + | </ | |
- | ===== Delegation and cloning ===== | + | |
===== First-class Delegation ===== | ===== First-class Delegation ===== |
at/tutorial/objects.txt · Last modified: 2013/05/17 20:23 by tvcutsem