Scala:强制子类覆盖所有父方法

时间:2017-10-06 14:50:05

标签: scala

有没有办法强制子类覆盖Scala中父类的所有方法?在Python中有@abstractmethod装饰器来做同样的事情,如果子类没有覆盖该方法,这将抛出异常。在寻找scala中是否有这样的功能..

1 个答案:

答案 0 :(得分:1)

是。创建父类abstract,并且不要实现任何希望强制派生类实现的方法。

abstract class Foo {
  def foo(s: String): Int
}

如果子类未能实现foo

,将会发生什么(在编译时)
scala> class Bar extends Foo
<console>:12: error: class Bar needs to be abstract, since method foo in 
class Foo of type (s: String)Int is not defined
   class Bar extends Foo
         ^