Two methods provided by the initial object object
are
super/1
and sub/1
. (Note that any definition of
super/1
, except the one in object
, is transformed to
super/2
). super/1
if sent to an object will return the
immediate parents of the object. sub/1
will return the immediate
children of the object if any. It is important to note that this service
is provided only for objects that have object
as their initial
ancestor.
| ?- john :: super(S), S :: sub(john). S = sportsman ; S = professor ; no
The sub/1
property allows programs to traverse object
hierarchies from a root object object
down to the leaves.