麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Java > 正文

java中重載、覆蓋和隱藏三者的區別分析

2019-11-26 16:09:49
字體:
來源:轉載
供稿:網友

重載:方法名相同,但參數不同的多個同名函數

  注意:1.參數不同的意思是參數類型、參數個數、參數順序至少有一個不同

     2.返回值和異常以及訪問修飾符,不能作為重載的條件(因為對于匿名調用,會出現歧義,eg:void a ()和int a() ,如果調用a(),出現歧義)

     3.main方法也是可以被重載的

覆蓋:子類重寫父類的方法,要求方法名和參數類型完全一樣(參數不能是子類),返回值和異常比父類小或者相同(即為父類的子類),訪問修飾符比父類大或者相同

   兩同兩小一大

    注意:子類實例方法不能覆蓋父類的靜態方法;子類的靜態方法也不能覆蓋父類的實例方法(編譯時報錯),總結為方法不能交叉覆蓋

隱藏:父類和子類擁有相同名字的屬性或者方法時,父類的同名的屬性或者方法形式上不見了,實際是還是存在的

  注意:當發生隱藏的時候,聲明類型是什么類,就調用對應類的屬性或者方法,而不會發生動態綁定

      方法隱藏只有一種形式,就是父類和子類存在相同的靜態方法

      屬性只能被隱藏,不能被覆蓋

      子類實例變量/靜態變量可以隱藏父類的實例/靜態變量,總結為變量可以交叉隱藏

隱藏和覆蓋的區別:

  被隱藏的屬性,在子類被強制轉換成父類后,訪問的是父類中的屬性

  被覆蓋的方法,在子類被強制轉換成父類后,調用的還是子類自身的方法

  因為覆蓋是動態綁定,是受RTTI(run time type identification,運行時類型檢查)約束的,隱藏不受RTTI約束,總結為RTTI只針對覆蓋,不針對隱藏

特殊情況:

  1.final修飾的屬性可以被隱藏,但是不能被賦值,即不能用=來賦值,網上說final屬性不能被修改,這個說法不準確,因為對于引用類型的變量用final修飾后,它只是不能被指向其他對象,但是可以改它自身的值,可以用ArrayList測試,final屬性可以在運行的時候進行初始化,但是不能不出現初始化語句

  2.final修飾的方法不能被覆蓋,可以被重載

  3.final修飾的類不能被繼承

  4.private 方法隱式添加了final

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一区二区三区欧洲 | 免费a级毛片永久免费 | 国产91久久久久久 | free japan xxxxhdsex69 | 亚洲少妇诱惑 | 免看黄大片aa | 日本一道aⅴ不卡免费播放 久久久久久久高清 | 深夜视频福利 | 99日韩精品视频 | 国产精品久久久久久久久久 | 精品xxxx户外露出视频 | av日韩在线免费观看 | 亚洲午夜1000理论片aa | 国产一区二区精彩视频 | 美女露100%无遮挡 | 欧美激情精品久久久久久黑人 | 91网页视频入口在线观看 | 91伊人久久 | 久久久久久久久久久久久久国产 | 中国女人内谢69xxxx天美 | 国产精品成人一区二区三区电影毛片 | 羞羞答答影院 | 国产精品中文在线 | 国产成人综合在线观看 | 免费激情网址 | 久久色播| 国内精品久久久久影院不卡 | 成年人免费高清视频 | 一级一级一级一级毛片 | 免费99热在线观看 | 草b视频在线观看 | 国产成人av免费 | 女18一级大黄毛片免费女人 | 亚洲精品一区国产精品丝瓜 | 高清国产午夜精品久久久久久 | 中文字幕精品亚洲 | 日本最新免费二区三区 | 一区二区三区精品国产 | 成人在线免费观看网址 | 91色综合综合热五月激情 | 亚洲成人福利在线 |