Java中Abstract類中的構造函數的理解

在看Spring源碼的時候注意到抽象函數的中構造函數的使用,當時想了一下抽象函數不能實例化爲何還要有構造函數呢?看了下往上的資料總結一下:java

Java子類建立實例化初始化分爲三個部分:函數

第一個部分是成員字段後的直接的初始化語句spa

第二個部分是由初始化塊組成,包括靜態初始化和非靜態初始化orm

第三個部分就是java源代碼中的構造方法中的代碼對象

調用初始化方法並不表明會生成對象,你的java代碼中出現new關鍵字加上構造方法的調用,只會生成一個對象,其父類對象不會生成,因此調用父類爲抽象類的構造方法徹底是合理的。繼承

抽象類中的構造方法實際上是用來給繼承的子類來用的,由於構造方法至關於初始化方法,當子類調用構造方法時必須調用父類構造方法,因此你能夠在子類產生對象時抽象類中按需求初始化抽象類中的字段以及執行一些初始化代碼。源碼

相關文章
相關標籤/搜索