我遇到一个问题,我必须实现父方法,并且必须在子类中重写该方法以进一步实现。 为什么会这样?为什么像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
}
答案 0 :(得分:1)
因为抽象方法的目的是在超类中定义它并强制子类覆盖并实现它。
来自Java Doc:
抽象方法是在没有实现的情况下声明的方法(没有大括号,后跟分号),如下所示:
abstract void moveTo(double deltaX, double deltaY);
如果你想在抽象方法中有一个实现,你不应该将方法声明为抽象,并记得在子类中覆盖它,如果需要调用super方法。