提取超类重构
此重构允许您将选定类中的某些成员提取到一个新的基类中。 原始类将继承创建的基类。
如果当前类型已经实现了任何接口,这些接口也可以被提取到新的基类中。
如果您想创建一个抽象类,请将至少一个提取的方法标记为抽象。
在下面的示例中,我们从现有类 形状 中提取了一个抽象类 圆形:
public class Circle : IDrawable
{
public Point Center { get; private set; }
public Color MyColor { get; private set; }
public int Radius { get; private set; }
public void Draw()
{
// draw...
}
}
public interface IDrawable
{
void Draw();
}
public abstract class Shape : IDrawable
{
public Color MyColor { get; private set; }
public abstract void Draw();
}
public class Circle : Shape
{
public Point Center { get; private set; }
public int Radius { get; private set; }
public override void Draw()
{
// draw...
}
}
public interface IDrawable
{
void Draw();
}
提取一个基类
通过以下方式之一选择一个类:
在编辑器中,将插入符号放在类名上。
在 Solution Explorer 中选择一个类。
在 结构窗口 窗口中选择一个类。
请执行以下操作之一:
按 Ctrl+Alt+Shift+T 然后选择 提取超类。
在主菜单中选择 。
提取超类 对话框将打开。
为新的基类指定一个名称,并指定它应该放置的位置——在新文件中或与原始类型在同一文件中。
选择您想要转移到新基类的成员。 成员列表可能包含:
当前类型的成员
所选类型当前实现的接口
要使单个成员成为/保持抽象,请勾选 设为 abstract 列中的复选框。 如果至少有一个成员被标记为抽象,则基类也将被创建为抽象类。
要快速选择所有公共成员,请单击 选择公共
Alt+P
。如果您选择的成员引用了其他成员,则在提取的类中会出现未定义的符号。 单击 依赖 通过选择所有依赖于当前选定成员的成员来解决冲突。
要应用重构,请点击 下一步。
如果未发现冲突,JetBrains Rider会立即执行重构。 否则,它会提示您 解决冲突。

最后修改日期: 2025年 9月 26日