Re: [軟體] 少用的 constructor 語法

看板java作者 (Alien)時間16年前 (2009/03/06 16:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《macbuntu (邀怪)》之銘言: : 剛剛在試一些東西, 才發現 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() 這樣寫真不直覺... inner class 在 instantiate 時, 需要 一個 "outer" object. e.g. class A { class B { } public void foo() { new B(); // outer 是 this } } // some other place A a = new A(); a.new B(); // instantiate B, 其 outer 是 a D 的 constructor 寫的東西, 大概不止是 為了 invoke super ctor, 而是順道生成其 outer class... 吧?.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82
文章代碼(AID): #19iDmrXd (java)
文章代碼(AID): #19iDmrXd (java)