您的位置:首頁技術文章
文章詳情頁

Java中super和this的用法詳解

瀏覽:7日期:2022-08-26 14:26:10

super 用法super關鍵字用來訪問父類內容,具體用法可分為三種: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.子類的構造方法訪問父類的構造方法

public class Animal { public Animal() { System.out.println('父類Animal的構造方法'); }}class Dog extends Animal { public Dog() { super(); System.out.println('子類Dog的構造方法'); }}

this 用法this關鍵字用來訪問本類內容,具體用法可分為三種: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.本類的構造方法訪問本類的另一個構造方法,此時this(…)調用必須放在這個構造方法中的第一句,且只能使用一次

public class Dog extends Animal { public Dog() { this(2); System.out.println('無參構造'); } public Dog(int age) { System.out.println(age); System.out.println('有參構造'); }}

super和this內存圖解

Java中super和this的用法詳解

方法區中存放包含主方法的Demo、父類和子類的class對象,編譯后在子類的class對象中會有一個super_class標記指向父類,表明二者的繼承關系 主方法進棧,執行語句new一個子類對象,棧中存放該對象的地址值,指向堆中開辟的一塊用于存放該子類對象的內存,注意堆中子類對象內容還包括完整的父類結構 主方法中執行子類的show方法,show方法進棧,棧中存放show方法中的局部變量num,輸出局部變量num的值,接著輸出this.num,this指向子類對象,this.num得到堆中子類變量num的值,最后輸出super.num得到的是堆中存儲的父類變量的值 主方法執行子類的method方法,子類method方法進棧,子類method方法中使用super.method()調用父類的method方法,父類的method方法進棧

總結

到此這篇關于Java中super和this的用法的文章就介紹到這了,更多相關Java中super和this的用法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
国产综合久久一区二区三区