C#面向对象的类结构

时间:2014-06-16 06:02:40

标签: c# oop

假设一个层次结构,其中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

2 个答案:

答案 0 :(得分:1)

你想要的是一种抽象方法,例如:

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的所有后代中继承,并调用parseSite()方法,该方法必须在B的任何后代中实现。

答案 1 :(得分:0)

parseSite中制作B方法摘要,并在CD中覆盖它。