Scala重载了构造函数和超级
我无法理解如何在
Java上开发类似于以下内容的Scala代码:
public abstract class A { protected A() { ... } protected A(int a) { ... } } public abstract class B { protected B() { super(); } protected B(int a) { super(a); } } public class C extends B { public C() { super(3); } } 虽然很清楚如何开发C类,但我无法获得如何接受B.帮助. 附:我正在尝试创建自己的基于wicket WebPage的BaseWebPage,这是Java的常见做法 解决方法
你的意思是:
abstract class A protected (val slot: Int) { protected def this() = this(0) } abstract class B protected (value: Int) extends A(value) { protected def this() = this(0) } class C extends B(3) { } 有一种AFAIK,无法绕过其中一种辅助形式的主要构造函数,即以下方法不起作用: abstract class B protected (value: Int) extends A(value) { protected def this() = super() } 所有辅助构造函数表单必须调用主要表单.从language specification(5.3.1构造函数定义):
(强调我的). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |