溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用Java中的Super關(guān)鍵字

發(fā)布時間:2021-10-21 15:15:54 來源:億速云 閱讀:146 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“如何使用Java中的Super關(guān)鍵字”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何使用Java中的Super關(guān)鍵字”吧!

一、重寫父類方法

1.什么是重寫父類方法

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

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

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

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

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

3.重寫父類方法案例

例如:

//定義Animal類 class Animal{ public String name;//名字屬性 public int age;//年齡屬性 //動物叫的方法 void shout(){         System.out.print("動物發(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í)例對象     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()方法時,調(diào)用的Animal的shout()方法并打印“動物發(fā)出的叫聲”,這時就不能描述具體的動物叫聲,Cat類對象表示貓類,發(fā)出的叫聲是“喵喵喵~~~”。方法的重寫就是在Cat子類中定義一個shout()方法對父類的方法進(jìn)行重寫。在調(diào)用Cat類對象的shout()方法時,只會調(diào)用子類重寫的該方法,沒有去調(diào)用父類的shout()方法。

二、super關(guān)鍵字

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

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

2.如果當(dāng)子類重寫父類的方法后,子類對象是不能訪問父類被重寫的方法,可以使用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="動物";//name屬性     int age=6;//age屬性     void shout(){     System.out.println("動物發(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)建狗的對象     d.shout();//調(diào)用Dog對象的重寫的shout方法     d.show();//調(diào)用Dog對象的show方法     } }

輸出的結(jié)果是:

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

從上面代碼中,首先定義一個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("我是一個"+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對象   } }

輸出的結(jié)果是:

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

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

到此,相信大家對“如何使用Java中的Super關(guān)鍵字”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI