Java中super和this的用法詳解
super 用法
super關(guān)鍵字用來訪問父類內(nèi)容,具體用法可分為三種:
1.子類的成員方法訪問父類的成員變量
public class Animal {
public int age = 10;
}
class Dog extends Animal {
public int age = 5;
public void showAge() {
System.out.println(super.age);
}
}
2.子類的成員方法訪問父類的成員方法
public class Animal {
public void fn(){
System.out.println("父類Animal的方法");
}
}
class Dog extends Animal {
@Override
public void fn() {
super.fn();
System.out.println("子類Dog的方法");
}
}
3.子類的構(gòu)造方法訪問父類的構(gòu)造方法
public class Animal {
public Animal() {
System.out.println("父類Animal的構(gòu)造方法");
}
}
class Dog extends Animal {
public Dog() {
super();
System.out.println("子類Dog的構(gòu)造方法");
}
}
this 用法
this關(guān)鍵字用來訪問本類內(nèi)容,具體用法可分為三種:
1.本類的成員方法訪問本類的成員變量
public class Dog extends Animal {
public int age = 1;
public void showAge() {
int age = 3;
System.out.println(age);
System.out.println(this.age);
}
}
2.本類的成員方法訪問本類的另一成員方法
public class Dog extends Animal {
public int age = 1;
public void showAge() {
int age = 3;
System.out.println(age);
System.out.println(this.age);
}
public void fn() {
this.showAge();
}
}
3.本類的構(gòu)造方法訪問本類的另一個構(gòu)造方法,此時this(…)調(diào)用必須放在這個構(gòu)造方法中的第一句,且只能使用一次
public class Dog extends Animal {
public Dog() {
this(2);
System.out.println("無參構(gòu)造");
}
public Dog(int age) {
System.out.println(age);
System.out.println("有參構(gòu)造");
}
}
super和this內(nèi)存圖解

- 方法區(qū)中存放包含主方法的Demo、父類和子類的class對象,編譯后在子類的class對象中會有一個super_class標(biāo)記指向父類,表明二者的繼承關(guān)系
- 主方法進棧,執(zhí)行語句new一個子類對象,棧中存放該對象的地址值,指向堆中開辟的一塊用于存放該子類對象的內(nèi)存,注意堆中子類對象內(nèi)容還包括完整的父類結(jié)構(gòu)
- 主方法中執(zhí)行子類的show方法,show方法進棧,棧中存放show方法中的局部變量num,輸出局部變量num的值,接著輸出this.num,this指向子類對象,this.num得到堆中子類變量num的值,最后輸出super.num得到的是堆中存儲的父類變量的值
- 主方法執(zhí)行子類的method方法,子類method方法進棧,子類method方法中使用super.method()調(diào)用父類的method方法,父類的method方法進棧
總結(jié)
到此這篇關(guān)于Java中super和this的用法的文章就介紹到這了,更多相關(guān)Java中super和this的用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- java中this與super關(guān)鍵字的使用方法
- Java中的構(gòu)造方法this、super的用法詳解
- java基礎(chǔ)知識 super和this使用解析
- Java this super代碼實例及使用方法總結(jié)
- 關(guān)于java關(guān)鍵字this和super的區(qū)別和理解
- Java中超詳細(xì)this與super的概念和用法
- Java 中的 this 和 super 區(qū)別
- Java關(guān)鍵字this與super詳解用法
- Java中super和this關(guān)鍵字詳解
- Java中this和super關(guān)鍵字的使用詳解
- JavaSE面試題之this與super關(guān)鍵字的區(qū)別詳解
- Java中 this和super的用法與區(qū)別小結(jié)
相關(guān)文章
使用logback實現(xiàn)按自己的需求打印日志到自定義的文件里
這篇文章主要介紹了使用logback實現(xiàn)按自己的需求打印日志到自定義的文件里,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
淺談SpringBoot Bean加載優(yōu)先級的問題
這篇文章主要介紹了淺談SpringBoot Bean加載優(yōu)先級的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
使用SpringBoot實現(xiàn)自動發(fā)送注冊驗證碼郵件功能
一直以來,我都對程序如何自動發(fā)送郵件感到好奇,想象一下,當(dāng)你在某個網(wǎng)站注冊時,輸入郵箱后不久就收到一封帶有驗證碼的郵件,這種體驗既方便又高效,所以本文給大家介紹了如何用?Spring?Boot?實現(xiàn)自動發(fā)送注冊驗證碼郵件,需要的朋友可以參考下2025-04-04
Java使用icepdf將pdf文件按頁轉(zhuǎn)成圖片
這篇文章主要為大家詳細(xì)介紹了Java使用icepdf將pdf文件按頁轉(zhuǎn)成圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12
SpringBoot實現(xiàn)動態(tài)控制定時任務(wù)支持多參數(shù)功能
這篇文章主要介紹了SpringBoot實現(xiàn)動態(tài)控制定時任務(wù)-支持多參數(shù)功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05
Java在排序數(shù)組中查找元素的第一個和最后一個位置的方法詳解
相信大家在操作Java的時候經(jīng)常會要在一個數(shù)組(無序)中查找元素的第一個和最后一個位置,下面這篇文章主要給大家介紹了關(guān)于Java在排序數(shù)組中查找元素的第一個和最后一個位置的相關(guān)資料,需要的朋友可以參考下2024-01-01
Java數(shù)據(jù)結(jié)構(gòu)之圖的路徑查找算法詳解
這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)中圖的路徑查找算法,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-11-11

