天天看點

java之super關鍵字

在java中使用super調用父類中的指定操作:

  • super可以用于通路父類中定義的屬性;
  • super可以用于調用父類中定義的成員方法;
  • super可以用于在子類構造方法中調用父類的構造器;

注意:

  • 尤其當子父類出現同名成員時,可以使用super進行區分;
  • super的追溯不僅限于直接父類;
  • super和this用法相像,this代表本類對象的引用,super代表父類的記憶體空間的辨別;

子類調用父類的構造器:

  • 子類中所有的構造器器預設都會通路父類的空構造器;
  • 當父類中沒有顯示定義空構造器時,子類的構造器必須通過this(參數清單)或者super(參數清單)語句指定調用本類或者父類中相應的構造器,且必須放在構造器的第一行;
  • 如果子類構造器中既未顯示調用父類或本類的構造器,且父類中又沒有無參構造器,則編譯出錯;
  • 當父類中沒有顯示定義空構造器且有有參構造器時,子類必須建立一個構造器來調用父類的有參構造器;如果父類中有多個重載的有參構造器,子類中隻需要建立一個構造器初始化父類中的其中一個有參構造器即可,父類中的其餘有參構造器就不必在子類中進行初始化了。