如何将以下类定义从Java转换为Scala?

时间:2013-01-26 05:55:26

标签: scala

我正在学习Scala,我无法弄清楚如何将以下Java代码转换为Scala:

class Parent {
  Parent(int i) {}
}
public class Test extends Parent {
  final static int I = 1;
  Test() {
    super(I);
  }
}

请帮帮我,谢谢。

以下是我失败的尝试:

1

class Parent(val i: Int) {}
object Test {
  val I = 1
}
class Test extends Parent(I) {
}

2

class Parent(val i: Int) {}
class Test extends Parent(I) {
  val I = 1
}

1 个答案:

答案 0 :(得分:2)

class Parent(i: Int)

class Test extends Parent(Test.I)  // `super` is done in the parent's constructor

object Test {
  val I = 1                        // `static` members go in an `object`
}

注意:

  1. 你实际上并不需要空括号。
  2. 如果您希望i可以公开访问(但不可修改),则仅向val声明{{1}}。它默认是私人的。