Alors si j'ai bien compris, la disjonction c'est l'héritage de base dans les langages objets.
Ce qui veut dire qu'en prenant l'exemple de la diapo on pourrait avoir quelque chose comme ça (JAVA).
UniteAdministrative ua = new Municipalite();
ou
UniteAdministrative ua2 = new MRC();
Elle sont disjointes puisqu'il y a comme tu le dis, deux instances distinctes, et qu'une instance d'UniteAdministrative ne peut pas contenir à la fois une instance de Municipalite et une instance de MRC.
Du coup l'overlaping ça serait l'opposé de la disjonction le cas où tu pourrais avoir, comme dans l'exemple, un commerce et une residence, le tout dans une seule instance de batiment. Bon ça je pense que tu avais compris.
Je dois admettre que j'ai du mal à bien saisir le concept dans la pratique.
J'ai trouvé cet exemple sur stackoverflow (JAVA, mais c'est plus pour le concept): https://stackoverflow.com/questions/3805395/overlaping-inheritance-in-java
Mais dans cet exemple, il y a pas d'héritage, même si le résultat final semble satisfaisant par rapport à ce qui est recherché. Du coup est ce que cette méthode est bien de l'overlapping ou pas, je ne sais pas. 
Autrement si ce n'est pas ça (et vu l'absence d'héritage c'est assez probable
) je ne vois pas du tout comment ça serait possible.
Enfin voilà a vrai dire j'avais jamais entendu parlé du {disjoint} UML donc je te réponds avec ce que j'ai lu à l'instant, si quelqu'un pouvait confirmer ou corriger ça serait pas plus mal. 