It’s not a real programming (coding) problem, sorry for that (but design comes first).
I don’t understand the difference between disjoint and overlapping. It occurs in several books, has a relation to OCL, which is considered part of UML, but the latest OCL specification by OMG no longer mentions these terms; therefore, it appears somewhat ill-defined to me. I would greatly appreciate if someone could clarify what’s behind this. Is it simply multiple-inheritance of the same super-class?
It is covered in the current 2.2 superstructure specification, on page 76 (printed page), section 7.3.21, quotes below. It has to do with rules of generalization and set theory. You can search the web for sub-type and disjoint and read non-UML examples, they should apply. Although Figure 7.4 8 looks helpful and is in the examples starting on page 78. Ok, I read the examples in the spec, they nail it down, but with pictures so I cannot easily copy those.
Text from one example: {complete, disjoint}
http://www.omg.org/spec/UML/2.2/Superstructure/PDF/
The spec lays out all the combinations.