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
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.