自學java之道--多態篇

學習java有一段時間了,覺得自己可能太心急了,不過也是由於時間緊迫,急需用到java的知識。所以在這裏開個博客總結一下。

===========================================================================================================

學習多態需要掌握的知識結構:

===========================================================================================================

學習多態需要搞明白的幾個問題:

Q1:什麼是多態?

Q2:如何在運行期間判斷對象所屬的類?

Q3:抽象類與具體類的區別?

Q4:爲什麼要使用final的類和方法?

Q5:什麼是接口?

Q6:需要學習java API的哪些通用接口?

===========================================================================================================

以上問題的回答:
A1:概念:引用對象對同一個方法做出各自的行爲;
     多態幫助你在處理對象時當做同一個類來處理,即繼承中的父類引用子類對象,然而做出子類中定義的行爲。

A2:利用instanceof關鍵字判斷。

A3:抽象類是不被對象化的,具體類則是用來對象化的。
解釋:抽象類實際上就是提供一個公共模板,裏面有公共的實例變量、方法(沒有實現)等,而方法的具體實現需要在具體子類中實現

A4:final的類不可繼承,final的方法不可重寫,final實際上表示“常量”(注:private、static這些關鍵字隱式表示final)

A5:接口是爲多種不同的無關的類提供同一套方法。
 接口的目的就是實現多態。

A6:Comparable、Serializable、Runnable、GUI event-listener interfaces、SwingConstants等。

===========================================================================================================

需要注意的細節:
1.父類引用子類的對象時,這個引用不能調用子類特有的方法,否則會引起編譯錯誤
2.引用對象調用方法時,它能夠知道去調用實際對象類的方法,而不是引用類的方法--即調用方法取決於對象運行時的類型。
3.只要類中存在抽象的方法,那麼這個類必須定義爲抽象類。
4.構造函數和static的變量或方法是不能被抽象化的,因爲構造函數不能被繼承,static的函數不可重寫。也就是抽象沒有意義
5.抽象方法必須在具體繼承類中實現,否則編譯錯誤。
6.接口中的實例變量是final、static、public的,方法是public、abstract的。
7.一個類接上接口,要麼實現接口中的所有方法(因爲接口中的方法都是抽象的)成爲具體類,要麼成爲抽象類。
8.接口可以調用的方法範圍有三個:自身聲明、上級接口、Object類,而且通過對象來調用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章