java super關(guān)鍵字知識點(diǎn)詳解
在對一些父類的調(diào)用上,我們需要借助java中的關(guān)鍵字使用,這就是super關(guān)鍵字,可以歸納為三種方法:作用于類、方法名和構(gòu)造函數(shù)。可以把它看做是使用父類的一個工具,相信大家在之前類的使用中有所接觸。下面我們就super的說明、三種用法、注意事項(xiàng)進(jìn)行說明,然后在實(shí)例中體會用法。
1.說明super相當(dāng)于是指代當(dāng)前的對象的父類,調(diào)用父類的屬性、方法和構(gòu)造方法
2.用法(1)super.變量/對象名;
使用這種方法可以直接訪問父類中的變量或?qū)ο螅M(jìn)行修改賦值等操作
(2)super.方法名();
直接訪問并調(diào)用父類中的方法
(3)super();
調(diào)用父類的初始化方法,其實(shí)就是調(diào)用父類中的public xxx()方法,通常第三種指代的是super()的省略寫法,系統(tǒng)會默認(rèn)添加此句。
特殊情況:如果父類沒有無參的構(gòu)造函數(shù),所以子類需要在自己的構(gòu)造函數(shù)中顯示的調(diào)用父類的構(gòu)造函數(shù),即不能使用系統(tǒng)默認(rèn)的“super()”,而需要顯性寫出super(xxx)
3.注意事項(xiàng)(1)表示調(diào)用父類的構(gòu)造函數(shù)。也是一個特殊語法,不是變量,沒有什么類型。
(2)可以在一個類的非static成員內(nèi)部使用。比如super.method()。
但是,注意,這個super.method()只是長得跟some_var.method()一樣,一個語法糖而已。實(shí)質(zhì)上,'super'根本不是一個變量。
(3)super的另外一個作用是調(diào)用父類的protected函數(shù)。只有通過'super'這個魔咒,我們才能操作父類的protected成員,別無它法。
4.實(shí)例class Person{ private String name; private int age; public Person(String name){ this.name = name; } public Person(String name, int age){ this(name); //this調(diào)用構(gòu)造方法必須放在第一行,這里這樣寫是為了避免代碼重復(fù) this.age = age; } public Person(){ System.out.println('1.Person類的構(gòu)造方法'); }}class Student extends Person{ private String school; public Student(){ super('yy'); System.out.println('Student類的構(gòu)造方法'); } public Student(String school){ this(); //super('yy'); //對super的調(diào)用必須在構(gòu)造方法的第一行 System.out.println('2.Student類的構(gòu)造方法'); }}public class Day6{ public static void main(String[] args){ Student stu = new Student('beida'); }}
知識點(diǎn)擴(kuò)展:
java Super 用法詳解
1)有人寫了個很好的初始化屬性的構(gòu)造函數(shù),而你僅僅想要在其中添加另一些自己新建屬性的初始化,這樣在一個構(gòu)造函數(shù)中調(diào)用另外一個構(gòu)造函數(shù),可以避免重復(fù)的代碼量,減少工作量;
2)在一個構(gòu)造函數(shù)中調(diào)用另外一個構(gòu)造函數(shù)的時候應(yīng)該用的是同一塊內(nèi)存空間,在默認(rèn)的構(gòu)造函數(shù)中先初始化變量,調(diào)用另一個的時候覆寫已經(jīng)初始化的變量的值;
3)整個調(diào)用的過程和遞歸調(diào)用函數(shù)有點(diǎn)類似,不斷充氣球,直到整個氣球膨脹起來,不斷的深層遞進(jìn),遇到停止標(biāo)記,逐層的跳出來。
到此這篇關(guān)于java super關(guān)鍵字知識點(diǎn)詳解的文章就介紹到這了,更多相關(guān)java super關(guān)鍵字是什么內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. python全棧開發(fā)語法總結(jié)2. Python調(diào)用接口合并Excel表代碼實(shí)例3. Python如何批量生成和調(diào)用變量4. ASP.Net Core對USB攝像頭進(jìn)行截圖5. 如何在Python項(xiàng)目中引入日志6. 通過CSS數(shù)學(xué)函數(shù)實(shí)現(xiàn)動畫特效7. python b站視頻下載的五種版本8. Python快速將ppt制作成配音視頻課件的操作方法9. ASP.Net Core(C#)創(chuàng)建Web站點(diǎn)的實(shí)現(xiàn)10. ajax動態(tài)加載json數(shù)據(jù)并詳細(xì)解析
