Android中比較常見的Java super關(guān)鍵字
super在android中比較常見,沒有java基礎(chǔ)也并不理解,所以空出時(shí)間學(xué)習(xí)了一下。
在Java類中使用super來引用基類的成分,比較簡單,示例如下:
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)造過程中必須調(diào)用其基類的構(gòu)造方法。
2、子類可以在自己的構(gòu)造方法中使用super(argument_list)調(diào)用基類的構(gòu)造方法。
3、如果子類的構(gòu)造方法中沒有顯示的調(diào)用基類的構(gòu)造方法,則系統(tǒng)默認(rèn)調(diào)用基類的無參數(shù)構(gòu)造方法。
4、如果子類構(gòu)造方法中既沒有顯示調(diào)用基類構(gòu)造方法,而基類又沒有無參數(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)造方法中沒有寫super的時(shí)候,系統(tǒng)默認(rèn)的調(diào)用父類的沒有參數(shù)的構(gòu)造方法
//相當(dāng)于此處寫了如下:
//super();
System.out.println("調(diào)用SuberClass("+n+")");
this.n=n;
}
SubClass(){
super(300);
//在子類構(gòu)造過程當(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)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。
相關(guān)文章
解決springboot項(xiàng)目不配置數(shù)據(jù)源啟動(dòng)報(bào)錯(cuò)問題
這篇文章主要介紹了解決springboot項(xiàng)目不配置數(shù)據(jù)源啟動(dòng)報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringMVC結(jié)構(gòu)簡介及常用注解匯總
這篇文章主要介紹了SpringMVC結(jié)構(gòu)簡介及常用注解匯總,幫助大家更好的理解和學(xué)習(xí)使用SpringMVC,感興趣的朋友可以了解下2021-03-03
elasticsearch 8.2.3 安裝及springboot簡單使用
這篇文章主要介紹了elasticsearch 8.2.3 安裝及springboot簡單使用,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
一步步教你JAVA如何優(yōu)化Elastic?Search
想要榨干Java操作Elasticsearch的所有性能潛力?本指南將一步步教你如何優(yōu)化Java與Elasticsearch的交互!從此,提升ES查詢速度、降低資源消耗不再是難題,趕快一起來探索Java?Elasticsearch優(yōu)化的秘訣吧!2024-01-01
java中InputStream獲取字節(jié)大小相關(guān)方法詳解
這篇文章主要給大家介紹了關(guān)于java中InputStream獲取字節(jié)大小相關(guān)方法的相關(guān)資料,在Java中要實(shí)現(xiàn)讀取文件大小,可以使用InputStream來讀取文件的內(nèi)容,并通過獲取讀取的字節(jié)數(shù)來得到文件的大小,需要的朋友可以參考下2023-11-11
maven多profile 打包下 -P參和-D參數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了maven多profile 打包下 -P參和-D參數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
SpringAMQP消息隊(duì)列實(shí)戰(zhàn)教程
這篇文章主要介紹了SpringAMQP消息隊(duì)列的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-02-02
項(xiàng)目為什么引入log4j而不是logback代碼
這篇文章主要介紹了項(xiàng)目為什么引入log4j而不是logback代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10

