インターフェースを抽象クラスに変換リファクタリング
このリファクタリングにより、インターフェースが抽象クラスに変換され、クラスおよびインターフェースのセット間の階層依存性をすばやく変更できます。
次の例を考えてみましょう。
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
}
}
インターフェースを抽象クラスに変換する
2026 年 6 月 12 日