Inheritance Conflicts in Object-Oriented Systems

Inheritance conflicts in class hierarchies are avoidable through design that considers application semantics. An algorithm, in the form of IF-THEN statements, is presented that resolves any name conflicts in class hierarchies. Several examples are given which show that conflicts arise because of poor design. These conflicts can be resolved by redesigning the schema, renaming properties, redefining (or overriding) an overloaded property, factoring attributes to a more general class, removing redundant ISA relationships and/or explicitly selecting an inheritance path.