Sather - Language Specification Prev Chapter 3. The signature of a method consists of its name, the modes and types of its arguments, if any, and its return type, if any.
Abstract classes specify a set of abstract signatures , an interface without an implementation.
Concrete classes specify a set of concrete signatures which do define an implementation. We say that the method signature f conflicts with g when f and g have the same name and number of arguments, f and g either both return a value or neither does, each argument mode in f is the same as the corresponding mode in g , or the mode in one is 'in' while the other is 'once', and each argument type in f is neither a subtype nor a supertype of the corresponding argument type in g, unless both are concrete. In addition to the name, the number, types, and modes of arguments in a call and whether a return value is used all contribute to the selection of the method. Sather permits overloading based on the number, type and mode of arguments, as well as whether or not a return value is present. However, overloading is not permitted between 'in' and 'once' modes.