如果我正在编写一个绘制形状的程序。
abstract class GraphicObject {
abstract void draw();
abstract void resize();
}
然后是一个扩展 GraphicObject 的子类,称为 Circle。
class Circle : GraphicObject {
void draw() {
...
}
void resize() {
...
}
}
这样处理有意义吗?某些绘图代码肯定会重复吗?
所以:
abstract class GraphicObject {
public virtual void draw()
{
// all objects will need to be drawn in a similar way, do this here.
}
}
然后在我的圈子课上做所有独特的事情给圈子
public override void draw() {
//Do unique circle drawing stuff here
base.draw();
}
然后在方法结束时调用基本的draw方法来完成。
我很难看到我需要真正使用抽象方法而不以某种形式重复代码的场景。