A. JAVA 中super 和this 的區別
區別如下:
1、指代上的區別
(1)super:是對當前對象中父對象的引用。
(2)This:指當前對象的參考。
2、引用對象上的區別
(1)super:直接父類中引用當前對象的成員(當基本成員和派生類具有相同成員時,用於訪問直接父類中隱藏父類中的成員數據或函數定義)。
(2)This:表示當前對象的名稱(程序中容易出現歧義的地方,應該用來表示當前對象;如果函數的成員數據與該類中成員數據的名稱相同,應用於表示成員變數名稱)。
3、調用函數上的區別
(1)super:在基類中調用構造函數(是構造函數中的第一條語句)。
(2)This:在此類中調用另一個結構化的構造函數(是構造函數中的第一條語句)。
B. JAVA中的super和this的用法和作用
super是調用父類的構造函數
使用super調用有一些限制條件,不能在super調用中使用實例變數作為參數.
而且在構造函數中,調用必須寫在繼承類的構造函數定義的第一行,不能在構造函數的後面使用.
this調用的同類的構造函數.
super的限制條件同樣適用於this函數
一個構造函數定義中不能同時包括this調用和super調用,如果想同時包括的話,可以在this中首先進行super調用.