【问题标题】:Scala: Force child class to override all parent methodsScala:强制子类覆盖所有父方法
【发布时间】:2018-03-18 10:07:46
【问题描述】:

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

【问题讨论】:

  • 只做父类abstract,不提供任何实现。

标签: scala


【解决方案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
         ^

【讨论】:

    猜你喜欢
    • 2017-11-18
    • 2011-05-21
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 2011-11-14
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多