为什么抽象方法不能在体内有实现?

时间:2016-11-11 15:41:51

标签: oop typescript

我遇到一个问题,我必须实现父方法,并且必须在子类中重写该方法以进一步实现。 为什么会这样?为什么像Java,Typescript,C#这样的语言不允许这样做?

因为很多人都在问为什么我需要它。

我有一个名为Component的父类,用typescript

编写
def typed[A : c.WeakTypeTag]: Symbol = weakTypeOf[A].typeSymbol

object TupleSymbols {
  val tuple2 = typed[(_, _)]
  val tuple3 = typed[(_, _, _)]
  // ... and so on
}

1 个答案:

答案 0 :(得分:1)

因为抽象方法的目的是在超类中定义它并强制子类覆盖并实现它。

来自Java Doc

  

抽象方法是在没有实现的情况下声明的方法(没有大括号,后跟分号),如下所示:

abstract void moveTo(double deltaX, double deltaY);

如果你想在抽象方法中有一个实现,你不应该将方法声明为抽象,并记得在子类中覆盖它,如果需要调用super方法。