If your software project has a lot of abstract classes, this may indicate that there is something wrong with it. Many abstract classes may indicate the following things:

  • Premature generalization
  • Complex inheritance tree

Of course, abstract classes have their use. However, your project having many abstract classes may be a sign of these problems.