Android中比較常見(jiàn)的Java super關(guān)鍵字
super在android中比較常見(jiàn),沒(méi)有java基礎(chǔ)也并不理解,所以空出時(shí)間學(xué)習(xí)了一下。
在Java類中使用super來(lái)引用基類的成分,比較簡(jiǎn)單,示例如下:
class FatherClass{ public int value; public void f(){ value=100; System.out.println ("FatherClass.value:"+value); } } class ChildClass extends FatherClass{ public int value; public void f(){ super.f(); value=200; System.out.println ("ChildClass.value:"+value); System.out.println(value); System.out.println(super.value); } } public class test1 { public static void main(String[] args){ ChildClass cc=new ChildClass(); cc.f(); } }
最終輸出的結(jié)果是:
FatherClass.value:100 ChildClass.value:200 200 100
另外繼承中的構(gòu)造也是用到了super,具體規(guī)則如下:
1、子類的構(gòu)造過(guò)程中必須調(diào)用其基類的構(gòu)造方法。
2、子類可以在自己的構(gòu)造方法中使用super(argument_list)調(diào)用基類的構(gòu)造方法。
3、如果子類的構(gòu)造方法中沒(méi)有顯示的調(diào)用基類的構(gòu)造方法,則系統(tǒng)默認(rèn)調(diào)用基類的無(wú)參數(shù)構(gòu)造方法。
4、如果子類構(gòu)造方法中既沒(méi)有顯示調(diào)用基類構(gòu)造方法,而基類又沒(méi)有無(wú)參數(shù)的構(gòu)造方法,則編譯出錯(cuò)。
示例如下:(此處最好可以自己試驗(yàn)一下)
class SuperClass{ private int n; SuperClass(){ System.out.println("調(diào)用SuperClass()"); } SuperClass(int n){ System.out.println("調(diào)用SuperClass("+n+")"); } } class SubClass extends SuperClass{ private int n; SubClass(int n){ //當(dāng)子類的構(gòu)造方法中沒(méi)有寫super的時(shí)候,系統(tǒng)默認(rèn)的調(diào)用父類的沒(méi)有參數(shù)的構(gòu)造方法 //相當(dāng)于此處寫了如下: //super(); System.out.println("調(diào)用SuberClass("+n+")"); this.n=n; } SubClass(){ super(300); //在子類構(gòu)造過(guò)程當(dāng)中必須調(diào)用父類構(gòu)造方法,并且super必須寫在第一句(先有爸爸再有兒子) System.out.println("調(diào)用SubClass()"); } } public class test2 { public static void main(String[] args){ SubClass sc1=new SubClass(); SubClass sc2=new SubClass(400); } }
最終結(jié)果為:
調(diào)用SuperClass(300) 調(diào)用SubClass() 調(diào)用SuperClass() 調(diào)用SuberClass(400)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
相關(guān)文章
解析Arthas協(xié)助排查線上skywalking不可用問(wèn)題
這篇文章主要為大家介紹了解析Arthas協(xié)助排查線上skywalking不可用的問(wèn)題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-02-02Java String 和StringBuffer的詳解及區(qū)別
這篇文章主要介紹了Java String 和StringBuffer的詳解及區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-05-05springboot 熱啟動(dòng)的過(guò)程圖解
這篇文章主要介紹了springboot 熱啟動(dòng)的過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10深入探究一下Java中不同的線程間數(shù)據(jù)通信方式
這篇文章主要來(lái)和大家一起深入探究一下Java中不同的線程間數(shù)據(jù)通信方式,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2023-04-04mybatis spring配置SqlSessionTemplate的使用方式
這篇文章主要介紹了mybatis spring配置SqlSessionTemplate的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Java DefaultListableBeanFactory接口超詳細(xì)介紹
這篇文章主要介紹了Java DefaultListableBeanFactory接口,DefaultListableBeanFactory是整個(gè)bean加載的核心部分,是Spring注冊(cè)機(jī)加載bean的默認(rèn)實(shí)現(xiàn)2022-11-11java多線程編程之InheritableThreadLocal
這篇文章主要為大家詳細(xì)介紹了java多線程編程之InheritableThreadLocal,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10