【发布时间】:2012-08-15 13:38:15
【问题描述】:
我有一些用Java编写的代码。对于新课程,我计划用 Scala 编写。我在访问基类的受保护静态成员时遇到问题。下面是示例代码:
Java 代码:
class Base{
protected static int count = 20;
}
scala 代码:
class Derived extends Base{
println(count);
}
对此有什么建议吗?在不修改现有基类的情况下如何解决这个问题
【问题讨论】:
-
如果基类上没有访问修饰符,它们必须在同一个包中,否则这将不起作用。
-
对不起,我们在基类上有 public 修饰符,但仍然不起作用。
-
说说问题所在怎么样?有任何错误信息吗?
-
似乎当我们将两个类放在不同的包中时,我们会得到编译错误:对象B中的变量a不能在对象com.fcy.sss.B中访问受保护的变量a是不允许的,因为封闭类类 D 不是 sss 包中定义目标的对象 B 的子类 这些是文件: B.java 文件:包 com.fcy.sss;公共类 B { 受保护的静态 int a = 30; } D.scala 文件:导入 com.fcy.sss.B 类 D 扩展 B{ println(B.a); }
标签: java scala inheritance static scala-java-interop