<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一篇文章教會(huì)你使用Java中的super關(guān)鍵字基本用法

          共 3298字,需瀏覽 7分鐘

           ·

          2020-12-20 14:10

          點(diǎn)擊上方“Java進(jìn)階學(xué)習(xí)交流”,進(jìn)行關(guān)注

          后臺(tái)回復(fù)“Java”即可獲贈(zèng)Java學(xué)習(xí)資料

          春江花朝秋月夜,往往取酒還獨(dú)傾。

          ????前面的文章給大家介紹了Java諸多基礎(chǔ)知識(shí),感興趣的小伙伴記得前往噢:Java基礎(chǔ)入門篇(五)——Java變量類型的轉(zhuǎn)換和運(yùn)算符、Java基礎(chǔ)入門篇(四)——Java變量數(shù)據(jù)類型和基本數(shù)據(jù)類型Java基礎(chǔ)入門篇(三)——Java常量、變量、Java基礎(chǔ)入門篇(二)——Java注釋、關(guān)鍵字和標(biāo)識(shí)符、Java基礎(chǔ)入門篇(一)——Java虛擬機(jī)和運(yùn)行環(huán)境。接下來開始我們今天的內(nèi)容吧~


          一、重寫父類方法

          1.什么是重寫父類方法

          在繼承關(guān)系中,子類會(huì)繼承父類所定義的方法,當(dāng)在子類中對(duì)繼承方法進(jìn)行一些修改,這就是重寫父類方法。也就是說子類包含父類同名方法。

          2.重寫父類方法遵循“兩同兩小一大”原則

          兩同:方法名,參數(shù)列表相同。

          兩?。鹤宇惙椒ǚ祷刂殿愋托∮诘扔诟割惙椒ǚ祷刂殿愋?;子類方法聲明拋出的異常類小于等于父類方法聲明拋出的異常類。

          一大:子類方法的訪問權(quán)限大于等于父類方法的訪問權(quán)限。

          3.重寫父類方法案例

          例如:

          //定義Animal類class Animal{public String name;//名字屬性public int age;//年齡屬性//動(dòng)物叫的方法void shout(){        System.out.print("動(dòng)物發(fā)出的叫聲");}}//定義Cat繼承Animal類class Cat extends Animal{void shout(){        System.out.print("喵喵喵~~~~");}//顯示名字和年齡方法public void show(){        System.out.print("我是"+name+","+"今年"+age+"歲");}}public class p20 {public static void main(String[] args) {    // TODO Auto-generated method stub    Cat c=new Cat();//創(chuàng)建Cat類實(shí)例對(duì)象    c.name="英國短毛貓";//給Cat類的name屬性賦值    c.age=2;//給Cat類的age屬性賦值    c.show();//調(diào)用Cat類的show()方法    c.shout();//調(diào)用Cat類的shout()方法    }}

          輸出的結(jié)果是:

          我是英國短毛貓,今年2歲喵喵喵~~~~

          從上面代碼中,Cat類是繼承Animal類的shout()方法,當(dāng)Cat類繼承Animal類還沒有shout()方法時(shí),調(diào)用的Animal的shout()方法并打印“動(dòng)物發(fā)出的叫聲”,這時(shí)就不能描述具體的動(dòng)物叫聲,Cat類對(duì)象表示貓類,發(fā)出的叫聲是“喵喵喵~~~”。方法的重寫就是在Cat子類中定義一個(gè)shout()方法對(duì)父類的方法進(jìn)行重寫。在調(diào)用Cat類對(duì)象的shout()方法時(shí),只會(huì)調(diào)用子類重寫的該方法,沒有去調(diào)用父類的shout()方法。


          二、super關(guān)鍵字

          1.什么是super關(guān)鍵字

          super是當(dāng)前類的直接父類對(duì)象,是對(duì)當(dāng)前對(duì)象的直接父類對(duì)象的引用。

          2.如果當(dāng)子類重寫父類的方法后,子類對(duì)象是不能訪問父類被重寫的方法,可以使用super關(guān)鍵字訪問父類的成員

          3.super關(guān)鍵字調(diào)用父類的成員變量和成員方法格式

          super.成員變量Super.成員方法([參數(shù)1,參數(shù)2,參數(shù)3,....])

          4.super關(guān)鍵字的用法案例

          例如:

          //定義Animal類class Animal{    String name="動(dòng)物";//name屬性    int age=6;//age屬性    void shout(){    System.out.println("動(dòng)物發(fā)出的叫聲");    }}class Dog extends Animal{    String name="狗";//name屬性    //重寫父類的shout方法    void shout(){    super.shout();}//訪問父類成員變量void show(){    System.out.println("名字:"+super.name+","+"年齡:"+super.age+"歲!");    }}public class p22 {public static void main(String[] args) {    // TODO Auto-generated method stub    Dog d=new Dog();//創(chuàng)建狗的對(duì)象    d.shout();//調(diào)用Dog對(duì)象的重寫的shout方法    d.show();//調(diào)用Dog對(duì)象的show方法    }}

          輸出的結(jié)果是:

          動(dòng)物發(fā)出的叫聲名字:動(dòng)物,年齡:6歲!

          從上面代碼中,首先定義一個(gè)Animal類,在Dog類繼承Animal類,然后重寫了父類的shout()方法,在子類中使用super.shout()調(diào)用父類重寫的方法,在show()方法訪問父類的屬性,super關(guān)鍵字是可以訪問屬性和方法。


          三、super關(guān)鍵字調(diào)用父類的構(gòu)造方法

          1.super關(guān)鍵字調(diào)用父類的構(gòu)造方法格式

          super([參數(shù)1,參數(shù)2,參數(shù)3,...])
          2.super關(guān)鍵字調(diào)用父類的構(gòu)造方法案例

          例如:

          //定義Fruit類class Fruit{//定義Fruit類有參數(shù)的構(gòu)造方法public Fruit(String name,double weight){        System.out.print("我是一個(gè)"+name+","+"重量為:"+weight+"g!");  }}//定義Cherry繼承Fruit類class Cherry extends Fruit{public Cherry(){        super("櫻桃",66);//調(diào)用父類有參數(shù)的構(gòu)造方法}}
          public class p23 {public static void main(String[] args) { // TODO Auto-generated method stub Cherry c=new Cherry();//實(shí)例化子類Cherry對(duì)象 }}

          輸出的結(jié)果是:

          我是一個(gè)櫻桃,重量為:66.0g!

          從上面的代碼中,首先是定義了一個(gè)Fruit類,在Fruit類中定義了有參數(shù)的構(gòu)造方法。定義Cherry繼承Fruit類,調(diào)用父類有參數(shù)的構(gòu)造方法。在實(shí)例化Cherry對(duì)象就會(huì)調(diào)用Cherry類的構(gòu)造方法,Cherry類的構(gòu)造方法被調(diào)用時(shí)父類的構(gòu)造方法也一樣被調(diào)用了。super調(diào)用父類構(gòu)造方法的代碼要寫子類構(gòu)造方法的第一行,只可以出現(xiàn)一次。


          四、 總結(jié)

          本文主要介紹了重寫父類的方法和super關(guān)鍵字。

          重寫父類方法就是子類包含父類同名方法,遵循兩同兩小一大”原則。

          super關(guān)鍵字是當(dāng)前類的直接父類對(duì)象,是對(duì)當(dāng)前對(duì)象的直接父類對(duì)象的引用,通過super關(guān)鍵字案例理解這個(gè)用法。

          此外,本文還介紹了super關(guān)鍵字調(diào)用父類的構(gòu)造的方法,介紹了它的格式和super關(guān)鍵字調(diào)用父類的構(gòu)造方法案例。希望大家通過本文的學(xué)習(xí),對(duì)你有所幫助!

          -------------------?End?-------------------

          往期精彩文章推薦:

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Java學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

          萬水千山總是情,點(diǎn)個(gè)【在看】行不行

          瀏覽 27
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  变态另类天堂 | 天天拍天天操天天干 | 免费看操逼逼 | 日本一级性生活短视频 | 国产无套内精一级毛片三 |