子類的構造方法(與super關鍵字相結合)
阿新 • • 發佈:2018-11-12
1、
隱式呼叫:子類構造方法沒有顯示呼叫父類構造方法(子類中沒有super()),那麼父類必須顯示提供無參構造方法。
這個時候,系統必須在父類中顯示呼叫無參建構函式。
顯示呼叫:
2、例項1:
在calcPerimeter方法中使用的是length與4相乘,而不是width,是因為width是pirvate型別的,length是protected型別的,private只能在其所在的類中使用。
3、例項2:
super放在第一行
4、例項3:
在new B()的時候,首先要呼叫父類中無形參構造方法,輸出A(),然後才打印B(),在b.f()的時候,因為子類對於父類實現了覆蓋,所以輸出的是B:f();
如果父類中無形參或者是有形參的構造方法是private型別的話,是無法通過super呼叫父類構造方法的(因為super關鍵字不能訪問父類中private的成員變數和方法),也就是說無法new出一個物件來。
如果要產生一個繼承物件的話,必須先呼叫父類非private型別的構造方法,然後再用繼承物件的構造方法,之後再new出一個物件來。
先呼叫父類的建構函式(不管是有形參還是無形參),然後再呼叫子類的建構函式(不管是有形參還是無形參)
super關鍵字不能訪問父類中private的成員變數和方法。