JetBrains Rider 2024.1 Help

Convert Interface to Abstract Class refactoring

This refactoring converts interfaces into abstract classes thus helping you quickly change hierarchical dependency among a set of classes and interfaces.

Consider the following example:

interface Shape { double Area { get; } void Draw(); } class Circle : Shape { private readonly int radius; public double Area => Math.PI * Math.Pow(radius, 2); public void Draw() { //do something } }
abstract class Shape { public abstract double Area { get; } public abstract void Draw(); } class Circle : Shape { private readonly int radius; public override double Area => Math.PI * Math.Pow(radius, 2); public override void Draw() { //do something } }

Convert an interface into an abstract class

  1. Select an interface in one of the following ways:

    • In the editor, place the caret at the name of an interface.

    • Select an interface in the Solution Explorer.

    • Select an interface in the Structure window.

  2. Do one of the following:

    • Press Ctrl+Alt+Shift+T and then choose Convert Interface to Abstract Class.

    • Choose Refactor | Convert Interface to Abstract Class from the main menu.

  3. If no conflicts are found, JetBrains Rider performs the refactoring immediately. Otherwise, it prompts you to resolve conflicts.

Last modified: 08 April 2024