 It may be possible to avoid this if the language (such as Eiffel) makes constant values of a class, functions without arguments, and data members interchangeable.Some authors have suggested reversing the relationship between circle and ellipse, on the grounds that an ellipse is a circle with more abilities.Unfortunately, ellipses fail to satisfy many of the invariants of circles; if has a method , must now provide it, too.