C#面向对象的类结构

本文关键字:结构 面向对象的 | 更新日期: 2023-09-27 18:08:49

假设一个层次结构,其中B是C,D 的父级

我想在B中定义一个C和D将使用的方法,但它将引用C和D 中定义的其他方法

这种结构的最佳方法是什么?

在伪码中

class B
  int login()
      parseSite()
class C : B
  int parseSite()
      site specific logic goes here
class D : B
  int parseSite()
      site specific logic goes here

C#面向对象的类结构

您想要的是一个抽象方法,例如:

class abstract B
{
    public int login()
    {
        parseSite();
    }
    protected abstract void parseSite();
}
class C : B
{
    protected override void parseSite()
    {
    }
}
class D : B
{
    protected override void parseSite()
    {
    }
}

login()方法在B的所有子代中继承,并调用必须在B的任何子代中实现的parseSite()方法。

B中使parseSite方法抽象,并在CD中重写它。