1. 程式人生 > >構造方法內的多態問題

構造方法內的多態問題

構造 避免 color extends size 其他 狀態 可能 nal

  例:A extends B

  如果A類中有一方法f(),且B類中也有方法f(),則方法f()就有多態,如果在A類的構造方法中調用f()方法,在new B() 創建B 對象的時候,在調用B的構造方法之前,會先調用A的構造方法,而A的構造方法中調用了f()方法,由於f()方法存在多態,因此,此時調用的是B類中的f()方法,由於此時B類對象還未創建,因此有可能會出現意想不到的問題,但編譯器並不會報錯。

  註意:構造方法的編寫準則--用盡可能簡單的方法使對象進入正常狀態,避免在構造方法內部調用其他的方法,構造方法內唯一能夠安全調用的方法是private或final方法(因為他們不存在多態)。

構造方法內的多態問題