Re: [問題]請問這樣的 Java Class 算不算是一個 Si …

看板Programming作者 (Alien)時間17年前 (2008/01/10 03:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/16 (看更多)
※ 引述《fourdollars (四元)》之銘言: : : 第二點說的是用static實作的不能實作任何"有東西的"interface : : 這裡"有東西的"的意思是這個interface要求要實現某些成員函式 : : 但是用static實作的卻不能有任何成員函式 只能有靜態(static)函式 : Java 裡面的 class function 也可以當做 member function 來使用~ @_@a : SingletonProcess tmp; : tmp.runCommand("dir"); : tmp.waitForTermination(); : 還是不懂為何不能算是 Singleton ... @_@a 除了其他人說了的理由, 我補充一下. static method 雖然可以藉著一個 instance 來 invoke, 但實際上當 compile 時, 還是改回 ClassName.method() 的樣子: 比如: class Foo { public static void staticMethod() { System.out.println("Foo"); } Foo foo = new foo; foo.staticMethod(); 這句雖然可以通過, 但實際 compile 時是會替換為 Foo.staticMethod(); 由於並非經 instance invoke, 所以如果有 method overriding 時, 是不會有任何 dynamic method lokup 出現: class Bar extends Foo { // overriden public static void staticMethod() { System.out.println("Bar"); } } Foo fooBar = new Bar(); fooBar.staticMethod(); 這裡仍是轉為 Foo.staticMethod(); 所以才會說不能 implement interface. (雖然我覺得這樣的用字有欠精準) Alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82 PsMonkey:轉錄至看板 java 01/10 13:22
文章代碼(AID): #17XPGYo5 (Programming)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 16 篇):
文章代碼(AID): #17XPGYo5 (Programming)