<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Head First Java學(xué)習(xí):第七章-繼承和多態(tài)

      第七章:繼承和多態(tài)

      1、 覆蓋(override)

      覆蓋的意思是由子類重新定義繼承下來的方法,以改變或延伸此方法的行為。

      2、 繼承(extends)

      類的成員:實(shí)例變量+方法

      實(shí)例變量無法覆蓋是因?yàn)椴恍枰鼈儧]有定義特殊的行為。

      繼承的關(guān)系意味著子類可以繼承了父類的成員,包含實(shí)例變量和方法。

      用繼承可以防止子類中出現(xiàn)重復(fù)的程序代碼。

      繼承調(diào)用哪個(gè)方法: 對(duì)于繼承的“層次樹”,java虛擬機(jī)從層次樹的最下方開始找,找不到就會(huì)往上尋找直到找到為止。

      IS-A:測(cè)試?yán)^承

        如果類Y是繼承類X,且類Y是類Z的父類,那么: Y IS-A X ;Z IS-A Y ;Z IS-A X。

      3、 super:

      在子類中還打算引用父類的方法然后加上額外行為。 可以做在父類中設(shè)計(jì)出所有子類都使用的功能實(shí)現(xiàn),讓子類可以不用完全覆蓋掉父類的功能,只是再加上額外的行為,可以通過 super這個(gè)關(guān)鍵字取用父類。

      舉例:

      public void roma(){

          super.roma(); // 會(huì)先執(zhí)行super版的roma(),然后再回來執(zhí)行自定義的功能或行為

          // my own roma stuff

      }

       

      4、 存取權(quán)限(access level)

      繼承中的存取權(quán)限: 父類可以通過存取權(quán)限決定子類是否能夠繼承某些特定的成員。

       

      四種權(quán)限(限制從大到小):private、default、protected、public

      存取權(quán)限控制了誰可以接觸什么。

      * public 類型的成員會(huì)被繼承

      * private 類型的成員不會(huì)被繼承

          當(dāng)子類把成員繼承下來時(shí),會(huì)把它們當(dāng)作自己定義的一樣。

       

      任一類的成員包含有:自己定義出的變量和方法+從父類繼承下來的任何東西

       

      5、 繼承的意義

      1) 避免了重復(fù)的程序代碼

      2) 定義出共同的協(xié)議 類的方法就是”共同協(xié)議“

      總結(jié):

      * 子類是extends父類出來的

      * 子類會(huì)繼承父類所有public類型的實(shí)例變量和方法,但不會(huì)繼承父類所有private類型的變量和方法

      * 繼承下來的方法可以被覆蓋掉,但是實(shí)例變量不能被覆蓋掉

      * 使用 IS-A 測(cè)試來驗(yàn)證繼承結(jié)構(gòu)的合理性

      * IS-A 關(guān)系是單方向的

      * 當(dāng)某個(gè)方法在子類下中被覆蓋過,調(diào)用這個(gè)方法時(shí),會(huì)調(diào)用覆蓋過的版本。

      6、 多態(tài)是如何運(yùn)行的?

      第一步:看一般聲明引用和創(chuàng)建對(duì)象的方法

      Dog myDog = new Dog();

      1) 聲明一個(gè)引用變量:

      2) 創(chuàng)建對(duì)象

      3) 連接對(duì)象和引用

      重點(diǎn)在于引用類型和對(duì)象的類型必須相符。

       

      第二步:在多態(tài)下,引用和對(duì)象可以是不同類型

      Animal myDog = new Dog();

      其中Animal 是 Dog的父類。

      運(yùn)用多態(tài)時(shí),引用類型可以是實(shí)際對(duì)象類型的父類;參數(shù)和返回類型也可以多態(tài)。

       

      什么是多態(tài):

          概念就是同一操作作用于不同對(duì)象,可以有不同解釋,產(chǎn)生不同的執(zhí)行結(jié)果。多態(tài)是一種運(yùn)行期狀態(tài)。

       

      多態(tài)的必要條件:

          為了實(shí)現(xiàn)運(yùn)行期的多態(tài),需要滿足三個(gè)條件:

          1)有類繼承,或者接口實(shí)現(xiàn)

          2)子類要重寫父類的方法

          3)父類的引用指向子類的對(duì)象

      舉例:

      public class Parent{
          public void call(){
              sout("in Parent");
          }
      }
      
      public class Son extends Parent{ // 1.有類繼承或接口實(shí)現(xiàn)
          public void call(){ //2.子類重寫父類方法
              sout("in Son");
          }
      }
      
      public class Test{
          public static void main(String[] args){
              Parent p = new Son();// 3.父類的引用指向子類
          }
      }

       

      關(guān)于重寫:

          重寫是指在java的子類和父類中有兩個(gè)名稱、參數(shù)列表都相同的方法的情況。由于她們具有相同的方法簽名,所以子類中的新方法將覆蓋父類中原有的方法。

       

      7、 你能夠繼承任何一個(gè)類嗎?如果類的成員一樣,如果類時(shí)私有的,你就不能繼承?

      答案:內(nèi)部類還沒正式介紹。除了內(nèi)部類,并沒有私有類這樣的概念,有三種方法可以防止某個(gè)類被作出子類。

      第一種:存取控制,不標(biāo)記為公有。非公有類只能被同一個(gè)包的類作出子類。

      第二種:final標(biāo)記符號(hào),表示它是繼承樹的末端,不能被繼承。

      第三種:讓類只擁有private的構(gòu)造程序(constructor)

       

      8、 為什么會(huì)作出標(biāo)識(shí):final的類,有什么好處?

      一般來說,不會(huì)標(biāo)識(shí)出final,除非你需要安全。

       

      9、 可不可以只用final去標(biāo)識(shí)方法,而不使用整個(gè)類?

      如果你想防止特定的方法被覆蓋,可以將該方法標(biāo)識(shí)上 final 這個(gè)修飾符。將整個(gè)類標(biāo)識(shí)上 final 修飾符表示沒有任何方法可以被繼承。

       

      10、 遵守合約:覆蓋的規(guī)則

      當(dāng)你要覆蓋父類的方法時(shí),你就得同意履約。 方法就是合約的標(biāo)識(shí)。

      * 參數(shù)必須一樣,且返回類型必須要兼容

        子類使用的參數(shù) = 父類使用的參數(shù)。

        子類聲明的返回類型或該類型的子類 = 父類聲明的返回類型

      * 不能降低方法的存取權(quán)限

        代表存取權(quán)限必須相同,或者更開放。比如,你覆蓋掉一個(gè)公有的方法并將它標(biāo)記為私有,這會(huì)讓它以為在編譯期通過的是個(gè)公有,然后突然在執(zhí)行期才被java虛擬機(jī)阻止存取。

       

      11、 方法的重載(overload)

      重載的意義:兩個(gè)方法名稱相同,但是參數(shù)不同。 所以重載和繼承、多態(tài)毫無關(guān)系。

      * 返回的類型可以不同

      * 不能只改變返回類型

        如果只有返回類型不同,但參數(shù)一樣,這是不允許的,編譯器不會(huì)讓這樣的事情過關(guān)。就算是重載,也要讓返回類型是 父類版返回類型的子類。

      * 可以更改存取權(quán)限

      posted @ 2022-05-01 21:54  hqq的進(jìn)階日記  閱讀(121)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 日本公妇乱偷中文字幕| 亚洲精品成人无限看| 日本精品一区二区不卡| 国产精品久久久国产盗摄| 伊人成伊人成综合网222| 成人亚洲一级午夜激情网| 肥大bbwbbw高潮抽搐| 激情综合网激情五月我去也| 国语精品一区二区三区| 国产一区二区三区色老头| 武冈市| 翘臀少妇被扒开屁股日出水爆乳| 欧日韩无套内射变态| 少妇午夜福利一区二区三区 | 日韩日韩日韩日韩日韩熟女| 国产一区日韩二区欧美三区| 欧美和黑人xxxx猛交视频| 亚欧洲乱码视频在线专区| 成人自拍短视频午夜福利| 免费一区二三区三区蜜桃| 无码专区视频精品老司机| 蜜臀av黑人亚洲精品| 国产乱码精品一区二区三区中文| 无码专区 人妻系列 在线| 国产无遮挡猛进猛出免费软件| 久久精品国产亚洲AV瑜伽| 欧洲美熟女乱av在免费| 思思久99久女女精品| 日韩精品理论片一区二区| 国产国拍亚洲精品永久软件| 亚洲精品日本一区二区| 日本美女性亚洲精品黄色| 亚洲 制服 丝袜 无码| 国产国语一级毛片| 国产熟睡乱子伦午夜视频| 黑巨人与欧美精品一区| 国产精品免费观看色悠悠| 欧美z0zo人禽交另类视频| 精品无码老熟妇magnet| 国产一区二区三区十八禁| 亚洲中文在线精品国产|