Inheritance is one of the key concepts in object-oriented programming. However, the usefulness of inheritance in concurrent
object-oriented programming is greatly reduced by the problem of inheritance anomaly. Inheritance anomaly is manifested by
undesirable re-definitions of inherited code. The problem is aggravated by the lack of a formal analysis, with a multitude
of differing proposals and conflicting opinions causing the current state of research, and further directions, to be unclear.
In this paper we present a formal analysis of inheritance anomaly in concurrent object-oriented programming. Starting from
a formal definition of the problem we develop a taxonomy of the anomaly, and use it to classify the various proposals. As
a result, the major ideas, trends and limitations of the various proposals are clearly exposed. Formal analysis of the anomaly
and a thorough exposition of its causes and implications are the pre-requisites for a successful integration of inheritance
and concurrency.