Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The class <code>French_Driver</code> only renames a feature <code>violation</code>, it does not add any new one. So, we can call only <code>French_violation</code> on it and not <code>violation</code> (there is no such name anymore in this class because of renaming). The same is true for the class <code>Us_Driver</code>.</p> <p>As a result the class <code>French_Us_Driver</code> inherits a feature <code>French_violation</code> from <code>French_Driver</code> and a feature <code>Us_violation</code> from <code>Us_Driver</code>, so there are two features in total: <code>French_violation</code> and <code>Us_violation</code>.</p> <p>The story would stop here if there were no common ancestor where the feature <code>violation</code> originates from. Because the class <code>French_Us_Driver</code> now has 2 versions of the feature <code>violation</code> inherited from the class <code>Driver</code> (one version is named <code>French_violation</code> and the other one - <code>Us_violation</code>), it's not clear which one should be used when calling a feature <code>violation</code> in the class <code>Driver</code> when the type of the object is <code>French_Us_Driver</code>. The conflict should be resolved by adding a <code>select</code> clause to one of the parent clauses, for example:</p> <pre><code>class French_Us_Driver inherit French_Driver select French_violation end Us_Driver end </code></pre> <p>Then, when a feature <code>violation</code> is called from the class <code>Driver</code> on an object of type <code>French_Us_Driver</code>, the feature <code>French_violation</code> will actually be called.</p> <p>Finally, it's possible to merge two versions of the feature into one by giving them the same name which does not necessary match the name of the origin (the code below omits the other details of feature redeclaration and assumes for simplicity that all the features are deferred):</p> <pre><code>class French_Us_Driver inherit French_Driver rename French_violation as French_Us_violation end Us_Driver rename Us_violation as French_Us_violation end end </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload