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