看板 java 關於我們 聯絡資訊
你可以說我在吹毛求疵 不過我對原 po 沒有什麼不敬的意思 ※ 引述《bu6668 (Will)》之銘言: : class AsusPrinter() implemented USB { ^^^^^^^^^^^^^ 這是新語法嗎? @_@ 我在 JDK 1.6 會炸 error? : public void output(String data){ print(data); } : } : class AcerPrinter() implemented USB { : public void output(String data){ print(data); } : } : class ApplePrinter() { : public void output(String data){ print(data); } : } : Interface USB(){ : public void output(String data); : } : class MyComputer(){ : USB usbPort1 =null; : public void setPrinter(USB usb){ : usbPort1 =usb; : } : } : A婆印表機不能用了因為沒有USB~ : 下次要接收一個物件來呼叫時 : 想清楚要用"介面"還是"類別"去接收物件吧!! : public void setObject(介面 obj) : public void setObject(類別 obj) 從 callee 的角度來看 其實這跟 interface 沒啥關係,因為如果 class FooPrinter extends Printer { public void output(String data) { print(data); } } class Printer { public void output(String data) { print(data); } } 也完全符合你的敘述(但也不是說你錯) 也就是說,單純看 callee 其實參數到底是用 interface / (abstract) class 宣告都可以 當然,如果要討論蓋 OO 大樓的時候 什麼狀況下要用 extend、什麼時候要作 abstract class 什麼時候該 implement interface 我只能說,我都是硬幹出來的 如果有人願意接下去討論 我早晚會給祖先多上三炷香感謝他們 -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.18.202
bu6668:程式碼已修正!沒有先編譯過程式碼再貼上是我的錯!! 05/09 06:20