看板 java 關於我們 聯絡資訊
例如我寫了兩個 class class base { public void foo() { System.out.println("base"); } } class derived extends base { public void foo() { System.out.println("derived"); } } 這時如果寫 new derived().foo(); 會印出 derived 但如果我想要讓他呼叫到 base 的 foo(),有辦法嗎? 試過先轉型成 base,但沒用 ( (base)(new derived()) ).foo() // derived 雖然目前不知道這樣可以做什麼 但因為 C++ 可以這麼做,很好奇 java 能不能 -- 光明 的背後 是 黑暗 黑暗 的背後 還是 黑暗 由此可知 黑暗 > 光明 Q.E.D. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.230.123 ※ 編輯: darkgerm 來自: 140.113.230.123 (09/03 02:35)
No:這就是多型的特性,還有這是override不是overloading 09/03 03:26
darkgerm:喔對…中文叫重載? 09/03 03:36
※ 編輯: darkgerm 來自: 140.113.230.123 (09/03 03:37)
jinn:原PO要的是不是 super.foo(); ? 09/03 10:49
ayumi001:super好像只能在子類別裡面用 在另外一個類別應該不行吧 09/03 10:54
tomoyaken14:已經overriding,就已經取代了原本的內容了 09/03 12:41
LaPass:orz.... 真的有好多東西都被拿掉了.... 09/03 16:08
TaiwanXDman:用super? 不過好像不能從外面用super@@ 09/04 00:09
Chikei:不能,以C++的術語來說就是java所有的function都是virtual 09/05 11:19
sbrhsieh:不是 virtual function 就不能稱為 override 09/05 22:05
lachtchlee:在方法覆蓋中 子類重新定義父類方法時 方法的名字 參 09/05 23:42
lachtchlee:數列表完全相同 但這些方法是存在於一個類層次結構的不 09/05 23:49
lachtchlee:同類中 09/05 23:50
lachtchlee:在這些子類中 雖然實現的方式不同 卻共享一個方法名 09/05 23:54