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 a new superclass. The original class will inherit from the superclass.
- In the editor, position the caret at the declaration of the class that you want to extract a superclass from.
- On the main menu, choose ReSharper | Refactor | Extract Superclass.
The Extract Superclass wizard opens:
- In the Name of new class box, type a name for a new superclass or leave the default one.
- 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 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.
- Click Next. If no conflicts are found, the refactoring will be
applied immediately, otherwise,