日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中this与super的区别

發布時間:2023/12/6 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中this与super的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

this與super關鍵字在java中構造函數中的應用:?
**

super()函數

**?
super()函數在子類構造函數中調用父類的構造函數時使用,而且必須要在構造函數的第一行,例如:

class Animal {public Animal() {System.out.println("An Animal");} } class Dog extends Animal {public Dog() {super();System.out.println("A Dog");//super();錯誤的,因為super()方法必須在構造函數的第一行//如果子類構造函數中沒有寫super()函數,編譯器會自動幫我們添加一個無參數的super()} } class Test{public static void main(String [] args){Dog dog = new Dog();} }

執行這段代碼的結果為:

An Animal?
A Dog

定義子類的一個對象時,會先調用子類的構造函數,然后在調用父類的構造函數,如果父類函數足夠多的話,會一直調用到最終的父類構造函數,函數調用時會使用棧空間,所以按照入棧的順序,最先進入的是子類的構造函數,然后才是鄰近的父類構造函數,最后再棧頂的是最終的父類構造函數,構造函數執行是則按照從棧頂到棧底的順序依次執行,所以本例中的執行結果是先執行Animal的構造函數,然后再執行子類的構造函數。

class Animal {private String name;public String getName(){name = name;}public Animal(String name) {this.name = name;} } class Dog extends Animal {public Dog() {super(name);} } class Test{public static void main(String [] args){Dog dog = new Dog("jack");System.out.println(dog.getName());} }

運行結果:

jack

當父類構造函數有參數時,如果要獲取父類的private的成員變量并給其賦值作為子類的結果,此時在定義子類的構造函數時就需要調用父類的構造函數,并傳值,如上例所示。

this()函數

this()函數主要應用于同一類中從某個構造函數調用另一個重載版的構造函數。this()只能用在構造函數中,并且也只能在第一行。所以在同一個構造函數中this()和super()不能同時出現。?
例如下面的這個例子:

class Mini extends Car {Color color;//無參數函數以默認的顏色調用真正的構造函數public Mini() {this(color.Red);}//真正的構造函數public Mini(Color c){super("mini");color = c;}//不能同時調用super()和this(),因為他們只能選擇一個public Mini(int size) {super(size);this(color.Red); }

`所以綜上所述,super()與this()的區別主要有以下:?
不同點:?
1、super()主要是對父類構造函數的調用,this()是對重載構造函數的調用?
2、super()主要是在繼承了父類的子類的構造函數中使用,是在不同類中的使用;this()主要是在同一類的不同構造函數中的使用?
相同點:?
1、super()和this()都必須在構造函數的第一行進行調用,否則就是錯誤的

轉載于:https://my.oschina.net/architectliuyuanyuan/blog/1615650

總結

以上是生活随笔為你收集整理的Java中this与super的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。