java重写的特性解释
重寫的特性:*
1.發(fā)生方法重寫的兩個(gè)方法的方法名、參數(shù)列表必須完全一致(子類重寫父類的方法)
2.發(fā)生方法重寫的兩個(gè)方法的返回值,java 5或者以前,必須一樣,java 7 java 8可以不同,但是必須是父類返回值的派生類。
3.子類拋出的異常下不能超過父類相應(yīng)方法拋出的異常(子類異常不能大于父類異常)
解釋:
(1)在java多態(tài)機(jī)制中,對(duì)象引用fs在編譯時(shí)期是屬于父類類型也即Father類型,但是在運(yùn)行時(shí)fs屬于子類類型,也就是Son類型
(2)也就是說在編譯的時(shí)候,編譯器發(fā)現(xiàn)catch中的IOException完全能將父類方法中拋出的異常捕獲,因此編譯通過,但是在運(yùn) 行時(shí)期,由于fs變成了子類類型,子類重寫的方法拋出的異常是Exception,顯然IOException不能捕獲這個(gè)比它更大的異常,因此在運(yùn)行時(shí)期也就出現(xiàn)失敗
4.子類方法的訪問級(jí)別不能低于父類相應(yīng)方法的訪問級(jí)別(子類訪問級(jí)別不能低于父類訪問級(jí)別)
解釋:
在一個(gè)軟件系統(tǒng)中,子類應(yīng)該可以替換任何基類能夠出現(xiàn)的地方,并且經(jīng)過替換以后,代碼還能正常工作。舉例、在父類中是public的方法,如果子類中將其降低訪問權(quán)限為private,那么子類中重寫以后的方法對(duì)于外部對(duì)象就不可訪問了,這個(gè)就破壞了繼承的含義
總結(jié)
以上是生活随笔為你收集整理的java重写的特性解释的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数组元素数组中的元素通过解析字符串参数获
- 下一篇: java 二维数组的定义