亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

解析java中super的用法分析

2019-11-26 16:05:05
字體:
來源:轉載
供稿:網友
昨天寫this用法總結的時候,突然產生了一個問題,請教別人之后,有了自己的一點認識。還是把它寫下來,為大家更好的認識提供一點思路。
1)有人寫了個很好的初始化屬性的構造函數,而你僅僅想要在其中添加另一些自己新建屬性的初始化,這樣在一個構造函數中調用另外一個構造函數,可以避免重復的代碼量,減少工作量;
2)在一個構造函數中調用另外一個構造函數的時候應該用的是同一塊內存空間,在默認的構造函數中先初始化變量,調用另一個的時候覆寫已經初始化的變量的值;
3)整個調用的過程和遞歸調用函數有點類似,不斷充氣球,直到整個氣球膨脹起來,不斷的深層遞進,遇到停止標記,逐層的跳出來。
寫了段代碼,解釋我上面的敘述:
復制代碼 代碼如下:

class JavanTiger {
     int age;      // 年齡
     int hight;    // 身體高度

     public JavanTiger() {
         print();
         this.age=2;   //這里初始化 age 的值 ,但遞歸返回的時候,這個值會被覆寫
     }

     public JavanTiger(int age) {
         this();      // 調用自己的第一個構造函數,下面的兩個語句數不執行的
         this.age = age;
         print();
     }

     public JavanTiger(int age, int hight) {
         this(age);   // 調用自己第二個構造函數  ,下面的兩個語句數不執行的
         this.hight = hight;
         print();
     }

     public void print() {  //打印函數
         System.out.println("I'am a " + age + "歲 " + hight + "尺高 tiger!");
     }
     public static void main(String[] args) {
         new JavanTiger(3,3);
     }
 }
 //output
 //I'am a 0歲 0尺高 tiger!
 //I'am a 3歲 0尺高 tiger!
 //I'am a 3歲 3尺高 tiger!

個人理解就是這樣了,可能里面還有問題,比如構造函數遞歸調用和程序函數遞歸調用的機制是否似乎相同的?構造函數同對象一起產生,也就是同時會分配內存空間出來,那門這樣的遞歸調用會不會打亂分配內存的順序?希望看到的大牛們拍板,給個最好的解釋。
今天要總結的是 super 這個關鍵字的使用,super 在構造函數中出現的時候一般是當前這個類繼承了其他的類,super 的出現就是為了調用父類的構造函數,貼段代碼先
復制代碼 代碼如下:

class Tiger {
     int age; // 年齡
     int hight; // 身體高度

     public Tiger() {
         print();
     }

     public void print() {
         System.out.println("I'am a " + age + "歲 " + hight + "尺高 tiger!");
     }
 }
 public class JavanTiger extends Tiger {   
     public JavanTiger() {
         super();    // 調用父類無參數的構造函數
     }
     public static void main(String[] args) {
         new JavanTiger();
     }
 }

其實在類JavanTiger 中的構造函數中的 super()可以不寫,JAVA會默認調用父類的無參數的構造函數,但如果父類沒有定義無參數的構造函數,沒有語法錯誤,程序會自動退出,沒有任何打印語句,這時候你需要手動調用其他父類的構造函數,貼段代碼:
復制代碼 代碼如下:

class Tiger {
     int age; // 年齡
     int hight; // 身體高度

     public Tiger(int age) {
     this.age = age;
     print();
     }
     public void print() {
         System.out.println("I'am a " + age + "歲 " + hight + "尺高 tiger!");
     }
 }
 public class JavanTiger extends Tiger {   
     public JavanTiger() {
         super(1);    // 調用父類有參數的構造函數
     }
     public static void main(String[] args) {
         new JavanTiger();
     }
 }

這段代碼中的 super(1)必須要寫進去,否則編譯器會報錯。所以我簡單的總結了一下,“this()是調用自己其他的構造函數,super()是調用自己繼承的父類的構造函數“,如果只想調用默認無參數的父類構造函數,不用在子類的構造函數當中寫出來,但是實際編程的時候,總是會忽略這一點。
那門這兩個關鍵字能不能同時出現在子類的一個構造函數當中納?答案肯定是不能。先說下自己的理解:
1)在新建一個基類的時候,不論遞歸調用幾次自身的構造函數,最終你都會去調用父類的構造函數,(不是顯式調用的話,系統會調用默認無參數的父類構造函數);
2)JAVA 中規定使用 this 和 super 時必須放在構造函數第一行,只有一個第一行;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品偷伦视频免费观看国产| 精品美女久久久久久免费| 国产成人在线精品| 亚洲深夜福利在线| 久久精品国产亚洲一区二区| 91极品女神在线| 欧美日韩激情网| 91精品视频大全| 97色在线观看| 国产91ⅴ在线精品免费观看| 97免费中文视频在线观看| 国产999精品视频| 国产综合视频在线观看| 久久精品一偷一偷国产| 欧美精品日韩三级| 97视频在线观看视频免费视频| 国产精品视频一区二区三区四| 日韩久久午夜影院| 亚洲精品国精品久久99热一| 国产精品自拍偷拍视频| 欧美成人午夜视频| 91产国在线观看动作片喷水| 久久中文字幕国产| 欧美高清理论片| 国产视频精品免费播放| 中文字幕精品视频| 国产精品白嫩初高中害羞小美女| 亚洲精品久久久久久久久久久久久| 国产精品一区二区三区久久| 亚洲国产成人精品久久久国产成人一区| 97精品一区二区视频在线观看| 欧美日韩国产在线| 国产精品一区二区久久精品| 精品久久久久久久久久久| 久久精品视频一| 精品久久久久久久久久久久久久| 2019亚洲男人天堂| 亚洲人成亚洲人成在线观看| 久久精品91久久久久久再现| 欧美激情精品久久久久| 国产91av在线| 91美女高潮出水| 国产不卡精品视男人的天堂| 久久综合久久八八| 亚洲免费伊人电影在线观看av| 亚洲成人网在线观看| 欧美一级淫片aaaaaaa视频| 一区二区三区四区精品| www.日本久久久久com.| 97在线视频观看| 欧美专区中文字幕| 国产精品入口免费视频一| 日韩在线观看电影| 精品高清一区二区三区| 狠狠爱在线视频一区| 国内外成人免费激情在线视频| 欧美电影免费观看大全| 久久精品这里热有精品| 欧美激情视频免费观看| 欧美激情一区二区久久久| 91香蕉嫩草神马影院在线观看| 国产成人精品国内自产拍免费看| 欧美激情视频三区| 亚洲国产婷婷香蕉久久久久久| 日韩欧美高清在线视频| 亚洲视屏在线播放| 成人亚洲欧美一区二区三区| 成人免费午夜电影| 久久精品国产69国产精品亚洲| 国产精品日韩专区| 6080yy精品一区二区三区| 亚洲美女又黄又爽在线观看| 色青青草原桃花久久综合| 北条麻妃久久精品| 亚洲a级在线播放观看| 色天天综合狠狠色| 成人国产精品一区二区| 日韩精品福利在线| 欧美激情性做爰免费视频| 欧美日韩美女在线观看| 97精品久久久| 欧美黑人巨大精品一区二区| 久久九九精品99国产精品| 国产精品视频999| 亚洲欧美日韩精品久久奇米色影视| 中文字幕亚洲欧美日韩在线不卡| 人体精品一二三区| 成人久久18免费网站图片| 欧美中文在线观看国产| 国产狼人综合免费视频| 在线观看国产成人av片| 日韩av网址在线| 亚洲视频电影图片偷拍一区| 国语自产精品视频在免费| 久久久久久久久久久免费| 日韩av快播网址| 国产精品成av人在线视午夜片| 91精品视频专区| 日本不卡高字幕在线2019| 国产欧美日韩亚洲精品| 久久夜色精品国产亚洲aⅴ| 一区二区三区在线播放欧美| 日韩一二三在线视频播| 最新中文字幕亚洲| 久久久精品日本| 欧美午夜激情在线| 国产aaa精品| zzjj国产精品一区二区| 欧美性色19p| 美女av一区二区三区| 91精品国产综合久久香蕉| www国产精品视频| 精品动漫一区二区三区| 欧美中文字幕第一页| 欧美一区二区影院| 亚洲免费av网址| 亚洲最新中文字幕| 久久好看免费视频| 亚洲美女视频网站| 色婷婷亚洲mv天堂mv在影片| 中文字幕精品久久| 国产盗摄xxxx视频xxx69| 日韩av综合中文字幕| 国产精品一区二区三区毛片淫片| 国产精品视频网站| 日韩在线视频线视频免费网站| 国产日韩欧美自拍| 成人写真视频福利网| 在线看福利67194| 亚洲欧美国内爽妇网| 亚洲精品动漫100p| 秋霞av国产精品一区| 亚洲一区二区久久久久久久| 中文字幕不卡av| 日本成熟性欧美| 国产精品久久久久久亚洲调教| 国产v综合v亚洲欧美久久| 欧美日韩精品在线| 都市激情亚洲色图| 久久久久久久久久久免费精品| 国产精品揄拍一区二区| 亚洲二区中文字幕| 亚洲精品久久久久久下一站| 亚洲热线99精品视频| 国产一区二区三区视频在线观看| 91九色国产社区在线观看| 国内精品伊人久久| 国产成人精品久久二区二区91| 国产v综合v亚洲欧美久久| 国产亚洲精品美女久久久久| 久久综合国产精品台湾中文娱乐网| 亚洲福利视频专区| 亚洲福利精品在线| 久久精品国产亚洲一区二区| 91九色蝌蚪国产| zzijzzij亚洲日本成熟少妇| 日韩欧美在线免费观看| 亚洲欧美精品伊人久久| 日韩国产精品视频| 久久999免费视频| 亚洲国产成人精品久久久国产成人一区| 亚洲欧洲一区二区三区在线观看| 亚洲精品资源在线| 久久久视频精品|