以前雖然老師一直反覆強調介面的重要,並且要求我們寫任何程式之前都嘗試先寫介面,但是由於自己淺顯的認識,一直覺得寫介面就是多此一舉,自己先寫好介面,寫好方法,在繼承去實現方法,這不是多此一舉嗎?直接在類裡寫完所有方法不就完了嗎?
但隨著學習的繼續,越來學懂得介面的重要性,並且也嘗試寫介面,這裡,想先寫一點自己對介面的一點點認識。
第一,寫介面方可以統一訪問。【介面名】 【物件名】=new 【實現介面的類】,這樣你像用哪個類的物件就可以new哪個物件了,介面的子類會自動向上轉型為父類型別,不需要改原來的**,就和你的usb介面一樣,插什麼讀什麼,就是這個原理。比如:
public inte***ce moveable
public class bullet implements moveable
@override
public void draw(graphics g)
@override
public boolean candelete(int w, int h)
}public class ball implements moveable
@override
public void draw(graphics g)
@override
public boolean candelete(int w, int h)
}
小球和子彈類都有相通的方法,可以把方法抽象出來寫成乙個介面,這樣小球和子彈實現介面後,訪問和管理小球和子彈類將十分方便。public class data
/*** 得到資料物件方法
* @return data物件
*/public static data instance()else
}/**
* 得到資料陣列的方法
* @return 資料陣列
*/public listgetlist()
}
這樣就可以訪問小球和子彈兩個類。
第二,團隊合作的條件。以前一直不明白為什麼要把它翻譯為介面。乙個程式可能有成千上萬的**,這樣必須有多人合作完成,而如果大家都按照自己的喜好寫各自負責的部分,那最後怎麼能組合在一塊呢?這就要先用介面寫好框架。這個類我只要這幾個方法,實現的子類隨便你想怎麼寫,只要到時呼叫這幾個方法是可以達到想要的效果。不止如此,那麼多的類之間關係並不大,那它們如何組合成乙個整體呢?介面,它真的像介面一樣把所有零件鏈結在一塊,組成最終的整體。特別是一些***。
public inte***ce session
public inte***ce sessionlistener
public inte***ce loginlistener
public class loginuiimplement implements loginui,sessionlistener
@override
public void setlistener(loginlistener lis)
@override
public void onrecievemsg(msg msg)
@override
public void onisclose()
}public class mainuiimplement implements mainui,loginlistener,sessionlistener
@override
public void onclicklogin(session session)
@override
public void onrecievemsg(msg msg)
@override
public void onisclose()
}
可以看到是接聽器介面把幾個零散的類聯絡在一塊。 對抽象類和介面的一點認識
假設乙個非抽象子類繼承乙個抽象父類,它必須實現父類中的抽象方法,假設子類也是抽象類,那麼則不必實現父類中的抽象方法。假設乙個類實現了乙個介面。那麼必須實現介面中的全部方法。可是子類是抽象類則不用。比方說乙個介面,你僅僅用到當中的一兩個方法,但是假設直接實現介面須要實現裡面的五個方法。這時候你能夠先讓...
對騰訊產品方面的一點認識 菜鳥篇
隨著一些行業內的討論,讓我對有進一步的認識.大家可以拿一些時下熱門話題發表出來討論,議論,但我反對一些老鳥對別人的指責,有一句話說的好,我不同意你,但我支援你.qq大家也許在幾年前就在用了.可能比我用的早,第一次用qq還是在學生時代,那時候qq簡直簡單多了.只有個聊天,簡單的頭像就那麼幾個 現在的q...
對暴庫的一點認識
去年的時候曾經有一段時間研究過ie雙解碼,所以對暴庫有一定的認識,前些天終於收到黑客的雜誌,裡面看了一篇臨的文章,下面我也談談個人對那篇文章的認識,這裡要說的是,大家如果再深入點研 究下去,就會發現,暴庫的利用不只是這麼簡單,還會有更多可以用的東東。暴庫的方式有多種多樣,我知道的就有3種以上,常見的...