java知識點講解
本文主題:
一.什麼是重載
二.什麼是覆蓋
三.兩者之間的區別
重載(overload):
在一個類中,如果出現了兩個或者兩個以上的同名函數,只要它們的參數的個數,或者參數的類型不同,即可稱之為該函數重載了。
即當函數同名時,只看參數列表。和返回值類型沒關係。
重載使用的時候需要注意:
1、在使用重載時只能通過不同的參數樣式。例如,不同的參數類型,不同的參數個數,不同的參數順序。
2、方法的異常類型和數目不會對重載造成影響。
3、對於父類來説,子類可以重載與繼承父類中的.方法同名的方法,如果某一方法在父類中是訪問權限是priavte,那麼就不能在子類對其進行重載,如果定義的話,也只是定義了一個新方法,而不會達到重載的效果。
覆蓋(override):
當子父類中出現了一模一樣的方法時,建立子類對象會運行子類中的方法。好像父類中的方法被覆蓋掉一樣。所以這種情況,是函數的另一個特性:覆蓋。
什麼時候使用覆蓋呢?
當子類繼承父類時,父類的功能內容需要修改時,可以通過覆蓋來實現
在方法覆蓋時,注意兩點:
1、子類覆蓋父類時,必須要保證,子類方法的權限必須大於等於父類方法權限可以實現繼承。否則,編譯失敗。
2、覆蓋時,要麼都靜態,要麼都不靜態。 (靜態只能覆蓋靜態,或者被靜態覆蓋)YES
3、被final修飾的方法是一個最終方法,不可以被覆蓋。
4、子類覆蓋父類的方法時,只能比父類拋出更少的異常,或者是拋出父類拋出的異常的子異常,因為子類可以解決父類的一些問題,不能比父類有更多的問題。
重載和覆蓋的區別:
1、方法的覆蓋是子類和父類之間的關係,是垂直關係;方法的重載是同一個類中方法之間的關係,是水平關係。
2、覆蓋只能由一個方法,或只能由一對方法產生關係;方法的重載是多個方法之間的關係。
3、覆蓋要求參數列表相同;重載要求參數列表不同。
4、覆蓋關係中,調用那個方法體,是根據對象的類型來決定;重載關係,是根據調用時的實參表與形參表來選擇方法體的。
以上就是小編為大家帶來的深入理解java中的重載和覆蓋全部內容了,希望大家多多支持~
-
計算機二級Java備考習題及答案
練習可以幫助我們加深對知識的記憶和理解,下面是本站小編整理的2017計算機二級Java備考練習題及答案,歡迎學習!備考練習題一1、下列敍述中,錯誤的是______。A、Applet的默認佈局管理器是FlowLayoutB、JApplet中增加構件是加到JApplet的內容面板上,不是直接加到JApp...
-
Java中運算符的使用
導語:計算機的最基本用途之一就是執行數學運算,作為一門計算機語言,Java也提供了一套豐富的運算符來操縱變量。下面是java中運算符的使用,一起來學習下吧:算術運算符單目:+(取正)-(取負)++(自增1)--(自減1)雙目:+-*/%(取餘)三目:a>b?true:false説明:當a大於b的時候,為tru...
-
Java創建線程的三種方法
導語:編寫多線程程序是為了實現多任務的併發執行,從而能夠更好地與用户交互。下面是Java創建線程的三種方法,一起來學習下吧:Runnable和Callable的區別(1)Callable規定的方法是call(),Runnable規定的方法是run().(2)Callable的任務執行後可返回值,而Runnable的任務...
-
java與JavaScript語言有何不同
java和JavaScript是兩個不同的語言。那麼這兩個語言有什麼不同呢?下面本站小編帶大家一起來看看詳細內容,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!講個故事:話説很久很久以前,有一個叫網景(Netscape)的,十月懷胎,他生了個兒子,很開興,...