To extract a superclass
  1. In the editor, position the caret at the declaration of the class that you want to extract a superclass from.
  2. On the main menu, choose ReSharper | Refactor | Extract Superclass. The Extract Superclass wizard opens:
    Refactorings__Extract_Superclass__dialog_box
  3. In the Name of new class box, type a name for a new superclass or leave the default one.
  4. Click Place beside or Place in another file to define the physical location of the new superclass.
  5. In the list of members, select members that you want to transfer to the new superclass.
  6. To make/keep individual members abstract, select corresponding Make Abstract check boxes where available.
  7. To extract all public members of the current class, click All Public.
  8. If you select members that reference other members, the latter are highlighted with red, as shown in figure above. Click Dependent to resolve the conflict, i.e. to select any members that depend on the currently selected members.
  9. Click Next. If no conflicts are found, the refactoring will be applied immediately, otherwise, resolve conflicts.