Inheritance
Script objects may be linked into a chain of inheritance . If one script object inherits from another, the second is said to be the parent of the first. If a message is sent to a script object and it doesn’t know how to obey it, the message is passed along to its parent to see whether it can obey it. A message here is simply an attempt to access any top-level entity.
To link two script objects
explicitly into a chain of inheritance, initialize the
parent
property of one to
point to the other.
Tip
The parent property may be set only through
initialization. You cannot use copy or
set to set it.
In this example, we explicitly arrange two script objects,
mommy and baby, into an
inheritance chain (by initializing
baby’s parent
property). We can then tell baby to execute a
handler that it doesn’t have, but which
mommy does have. Here we go:
script mommy
on talk( )
display dialog "How do you do?"
end talk
end script
script baby
property parent : mommy
end script
baby's talk( ) -- How do you do?In that example, we told the child from outside to execute a handler that it doesn’t have but the parent does. The child can also tell itself to execute such a handler:
script mommy
on talk( )
display dialog "How do you do?"
end talk
end script
script baby
property parent : mommy
talk( )
end script
run baby -- How do you do?Getting and setting properties works the same way. In this example,
we get and set the value of a property of baby
that baby doesn’t have:
script mommy property address ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access