Next: Object Interfaces, Previous: Classes and Scoping, Up: Objects
You may want to do the definition of methods separate from the definition of the class, its selectors, fields, and instance variables, i.e., separate the implementation from the definition. You can do this in the following way:
graphical class inst-value radius end-class circle ... \ do some other stuff circle methods \ now we are ready m: ( x y circle -- ) radius draw-circle ;m overrides draw m: ( n-radius circle -- ) [to-inst] radius ;m overrides construct end-methods
You can use several methods
...end-methods
sections. The
only things you can do to the class in these sections are: defining
methods, and overriding the class's selectors. You must not define new
selectors or fields.
Note that you often have to override a selector before using it. In
particular, you usually have to override construct
with a new
method before you can invoke heap-new
and friends. E.g., you
must not create a circle before the overrides construct
sequence
in the example above.