September 2017 Update

This commit is contained in:
Ingy döt Net 2017-09-23 10:01:46 +02:00
parent bba7bfd280
commit ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions

View file

@ -0,0 +1,29 @@
call dinnerTime "yogurt"
call dinnerTime .pizza~new
call dinnerTime .broccoli~new
-- a mixin class that defines the interface for being "food", and
-- thus expected to implement an "eat" method
::class food mixinclass object
::method eat abstract
::class pizza subclass food
::method eat
Say "mmmmmmmm, pizza".
-- mixin classes can also be used for multiple inheritance
::class broccoli inherit food
::method eat
Say "ugh, do I have to?".
::routine dinnerTime
use arg dish
-- ooRexx arguments are typeless, so tests for constrained
-- types must be peformed at run time. The isA method will
-- check if an object is of the required type
if \dish~isA(.food) then do
say "I can't eat that!"
return
end
else dish~eat