<< Prev | - Up - | Next >> |
This chapter documents the changes that have taken place in the Base Environment (formerly Standard Modules) and base language.
Multiple inheritance does not provide for automatic conflict resolution. If a conflicting method definition arises in multiple inheritance, the conflict must be resolved by overriding the method. Otherwise, an exception is raised.
A conflicting method definition arises if a method is defined by more than one class. For example,
class A meth m skip end end
class B meth m skip end end
class C from A B end
raises an exception (the old model would silently pick the method from B
), since both A
and B
define the method m
. The only way to fix this is by overriding m
when creating class C
:
class C from A B meth m skip end end
Features and attributes are handled identically. For a more thorough discussion see Chapter 10 of ``Tutorial of Oz''.
Class
and Object
The modules Class
and Object
underwent a major redesign and re-implementation. The redesign became necessary because the old modules compromised both system and application security. Programming abstractions that support common patterns of object oriented programming are described in the module ObjectSupport
(see Chapter 30 of ``System Modules'').
The procedures Chunk.hasFeature
and Chunk.getFeature
are gone. Just use HasFeature
and Value.'.'
(see Chapter 3 of ``The Oz Base Environment'').
<< Prev | - Up - | Next >> |