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
您想要的是一个抽象方法,例如:
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
方法抽象,并在C
和D
中重写它。