作者macbuntu (邀怪)
看板java
标题[软体] 少用的 constructor 语法
时间Fri Mar 6 15:35:26 2009
刚刚在试一些东西, 才发现 Java 里如果继承的 parent class 是
non-static inner class 而且没有 default constructor 时,
需要用一个奇怪的语法来呼叫 parent constructor:
class A {
class B {
class C {
public C(int i) {}
}
}
}
class D extends A.B.C {
public D() {
new A().new B().super(123);
}
}
这种语法用的人应该不多吧? 那个 super() 这样写真不直觉...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.91.42
1F:推 PsMonkey:敢问这样设计的需求是...? 03/06 15:53
2F:→ macbuntu:我在写 compiler, 纯粹是要知道语言所有的黑暗角落 :P 03/06 16:04
3F:推 PsMonkey:喔喔喔... 推一下 (y) 03/06 16:38
4F:推 ickxlin:因为B,C都不是static,若是则可 new A.B.C() 03/06 17:19
5F:→ macbuntu:不对喔... 如果 B,C 都是 static 要直接 super(123), 03/06 17:26
6F:→ macbuntu:new A.B.C(123) 不是 constructor 呼叫, compile 不过的 03/06 17:28