>In Delphi (OPL) conflicting methods must be attributed explicitly as:>virtual - can be redefined in derived classes override - virtual>replacement for the ancestor class method of the same signature>overload - method with intentionally different signature reintroduce ->supersedes (hides) ancestor methods of the same name

This table should read like this:

virtual - can be redefined in derived classes.

override - virtual replacement for the ancestor class method of the same
signature.

overload - method with intentionally different signature.

reintroduce - supersedes (hides) ancestor methods of the same name.

I also may have missed your point. When the selection of an overloaded
method has to depend on the actual argument types, then the compiler
only has the chance to defer the arbitration until runtime. Then one
should be prepared for runtime error messages indicating that no
overloaded method could be found for the actual combination of
argument types. I'm not sure whether such hidden automatism really is
desireable, or should be circumvented by a more static redesign of the
program.