Consider there is a list of companies and we can add a new company or edit an existing one. Adding and editing is performed using a form.

To render these forms I need two classes: AddForm and EditForm.
But they have a lot in common (fields, buttons and so on), so I generalize Form class:

```
class AddForm extends Form
class EditForm extends Form

```

Then I need to create a lot of forms: for companies, contacts, documents, users and so on. So I create a library with three base classes:

```
abstract class BaseForm
abstract class BaseAddForm extends BaseForm
abstract class BaseEditForm extends BaseForm

```

Now I am trying to create an implementation for companies:

```
class CompanyForm extends BaseForm
class CompanyAddForm extends BaseAddForm, CompanyForm

```

OOPS! Multiple inheritance isn't allowed.

What should I do?

UPDATE: I heard that need for multiple inheritance means bad design. Could anyone show me how this design could be reworked?