Using scala constructor to set variable defined in trait

后端 未结 2 1989
广开言路
广开言路 2021-02-01 01:32

If I understand correctly, traits are the closest thing to Java interfaces and class constructors automatically set the variables.

But what if I have a class that extend

2条回答
  •  南方客
    南方客 (楼主)
    2021-02-01 01:57

    trait Foo { var foo: String = _ }
    class Bar(foo0: String) extends Foo { foo = foo0 }
    

    The trait declares an uninitialized var; the class then sets it equal to the input parameter.

    Alternatively,

    trait Foo {
      def foo: String
      def foo_=(s: String): Unit
    }
    class Bar(var foo: String) extends Foo {}
    

    declares the getter/setter pair corresponding to a foo, which are set by the class.

提交回复
热议问题