The Extract Superclass refactoring allows to extract certain members from a selected class to a new superclass.
ReSharper analyses the selected class and detects the superclasses and interfaces it inherits from, as well as its members and methods that can be transferred to the new superclass. The original class will be made to inherit from the new superclass.
- In the editor, position the caret at the declaration of the class that you want to extract a superclass from.
- Choose ReSharper | Refactor | Extract Superclass. The Extract Superclass wizard opens:
- In the Name of new class text box, type a name for the new superclass.
- Click Place beside or Place in another file to define the physical location of the new superclass.
- In the list of members, select members that you want to transfer to the new superclass.
- To make/keep individual members abstract, select corresponding Make Abstract check boxes where available.
- To extract all public members of the current class, click All Public.
- If you selected 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.
- Click Next. If no conflicts are found, the refactoring will be applied immediately.