/usr/share/mozart/doc/changes/node43.html is in mozart-doc 1.4.0-8ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>14.3 Base</TITLE><LINK href="ozdoc.css" rel="stylesheet" type="text/css"></HEAD><BODY><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node42.html#section.m100.syntax"><< Prev</A></TD><TD><A href="node40.html">- Up -</A></TD><TD><A href="node44.html#section.m100.system">Next >></A></TD></TR></TABLE><DIV id="section.m100.base"><H2><A name="section.m100.base">14.3 Base</A></H2><P> This chapter documents the changes that have taken place in the Base Environment (formerly Standard Modules) and base language. </P><DIV class="unumbered"><H3><A name="label58">14.3.1 Classes with Multiple Inheritance</A></H3><P> Multiple inheritance does not provide for automatic conflict resolution. If a conflicting method definition arises in multiple inheritance, the conflict <EM>must</EM> be resolved by overriding the method. Otherwise, an exception is raised. </P><P> A conflicting method definition arises if a method is defined by more than one class. For example, </P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">class</SPAN> <SPAN class="type">A</SPAN> <SPAN class="keyword">meth</SPAN> <SPAN class="functionname">m</SPAN> <SPAN class="keyword">skip</SPAN> <SPAN class="keyword">end</SPAN> <SPAN class="keyword">end</SPAN> <BR><SPAN class="keyword">class</SPAN> <SPAN class="type">B</SPAN> <SPAN class="keyword">meth</SPAN> <SPAN class="functionname">m</SPAN> <SPAN class="keyword">skip</SPAN> <SPAN class="keyword">end</SPAN> <SPAN class="keyword">end</SPAN> <BR><SPAN class="keyword">class</SPAN> <SPAN class="type">C</SPAN> <SPAN class="keyword">from</SPAN><SPAN class="type"> A B</SPAN> <SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P> raises an exception (the old model would silently pick the method from <CODE>B</CODE>), since both <CODE>A</CODE> and <CODE>B</CODE> define the method <CODE>m</CODE>. The only way to fix this is by overriding <CODE>m</CODE> when creating class <CODE>C</CODE>: </P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">class</SPAN> <SPAN class="type">C</SPAN> <SPAN class="keyword">from</SPAN><SPAN class="type"> A B</SPAN> <SPAN class="keyword">meth</SPAN> <SPAN class="functionname">m</SPAN> <SPAN class="keyword">skip</SPAN> <SPAN class="keyword">end</SPAN> <SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P> </P><P> Features and attributes are handled identically. For a more thorough discussion see <A href="../tutorial/node10.html#chapter.classes">Chapter 10 of ``Tutorial of Oz''</A>. </P></DIV><DIV class="unumbered"><H3><A name="label59">14.3.2 The Modules <CODE>Class</CODE> and <CODE>Object</CODE></A></H3><P> The modules <CODE>Class</CODE> and <CODE>Object</CODE> 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 <CODE>ObjectSupport</CODE> (see <A href="../system/node96.html#chapter.objectsupport">Chapter 30 of ``System Modules''</A>). </P></DIV><DIV id="section.m100.base.chunks"><H3><A name="section.m100.base.chunks">14.3.3 Chunks</A></H3><P> The procedures <CODE>Chunk<SPAN class="keyword">.</SPAN>hasFeature</CODE> and <CODE>Chunk<SPAN class="keyword">.</SPAN>getFeature</CODE> are gone. Just use <CODE>HasFeature</CODE> and <CODE>Value<SPAN class="keyword">.</SPAN><SPAN class="string">'.'</SPAN></CODE> (see <A href="../base/value.html#chapter.values">Chapter 3 of ``The Oz Base Environment''</A>). </P></DIV></DIV><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node42.html#section.m100.syntax"><< Prev</A></TD><TD><A href="node40.html">- Up -</A></TD><TD><A href="node44.html#section.m100.system">Next >></A></TD></TR></TABLE><HR><ADDRESS><SPAN class="version">Version 1.4.0 (20110908185330)</SPAN></ADDRESS></BODY></HTML>
|