【发布时间】:2018-03-18 10:07:46
【问题描述】:
有没有办法强制子类在Scala中覆盖父类中的所有方法?在 Python 中有 @abstractmethod 装饰器可以做同样的事情,如果子类没有覆盖该方法,这将引发异常。在寻找这样的功能是否在scala中可用..
【问题讨论】:
-
只做父类
abstract,不提供任何实现。
标签: scala
有没有办法强制子类在Scala中覆盖父类中的所有方法?在 Python 中有 @abstractmethod 装饰器可以做同样的事情,如果子类没有覆盖该方法,这将引发异常。在寻找这样的功能是否在scala中可用..
【问题讨论】:
abstract,不提供任何实现。
标签: scala
是的。将您的父类设为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
^
【讨论】: