子類物件例項化過程的理解

2021-10-08 04:48:28 字數 1746 閱讀 8687

提到子類物件的例項化,就得先對this 與super做乙個回顧

1.this關鍵字

1.可以呼叫的結構:屬性、方法;構造器

2.this呼叫屬性、方法:

this理解為:當前物件 或 當前正在建立的物件

1> 在類的方法中,我們可以使用"this.屬性"或"this.方法"的方式,呼叫

當前物件屬性或方法。但是,通常情況下,我們都擇省略"this."。

特殊情況下,如果方法的形參和類的屬性同名時,我們必須顯式

的使用"this.變數"的方式,表明此變數是屬性,而非形參。

2> 在類的構造器中,我們可以使用"this.屬性"或"this.方法"的方式,調

用當前正在建立的物件屬性或方法。但是,通常情況下,我們都擇省略

"this."。特殊情況下,如果構造器的形參和類的屬性同名時,我們必須

顯式的使用"this.變數"的方式,表明此變數是屬性,而非形參。

3.this呼叫構造器:

① 我們在類的構造器中,可以顯式的使用"this(形參列表)"方式,呼叫本類

中指定的其他構造器

② 構造器中不能通過"this(形參列表)"方式呼叫自己

③ 如果乙個類中有n個構造器,則最多有 n - 1構造器中使用了"this(形參

列表)"

④ 規定:"this(形參列表)"必須宣告在當前構造器的首行

⑤ 構造器內部,最多只能宣告乙個"this(形參列表)",用來呼叫其他的構

造器

2.super關鍵字
1.super 關鍵字可以理解為:父類的

2.可以用來呼叫的結構:屬性、方法、構造器

3.super呼叫屬性、方法:

1> 我們可以在子類的方法或構造器中。通過使用"super.屬性"或"super.

方法"的方式,顯式的呼叫父類中宣告的屬性或方法。但是,通常情況下,我

們習慣省略"super."

2> 特殊情況:當子類和父類中定義了同名的屬性時,我們要想在子類中呼叫

父類中宣告的屬性,則必須顯式的使用"super.屬性"的方式,表明呼叫的是

父類中宣告的屬性。

3> 特殊情況:當子類重寫了父類中的方法以後,我們想在子類的方法中呼叫

父類中被重寫的方法時,則必須顯式的使用"super.方法"的方式,表明呼叫

的是父類中被重寫的方法。

4.super呼叫構造器:

1> 我們可以在子類的構造器中顯式的使用"super(形參列表)"的方式,調

用父類中宣告的指定的構造器

2> "super(形參列表)"的使用,必須宣告在子類構造器的首行!

3> 我們在類的構造器中,針對於"this(形參列表)"或"super(形參列表)"

只能二選一,不能同時出現

4> 在構造器的首行,沒顯式的宣告"this(形參列表)"或"super(形參列表)"

,則預設呼叫的是父類中空參的構造器:super()

5> 在類的多個構造器中,至少乙個類的構造器中使用了"super(形參列表)",

呼叫父類中的構造器

注意:

子類物件的例項化過程

源 class person public person string name,int age class student extends person public student string name,int age public student string name,int age,st...

子類的例項化過程

乙個物件例項化過程 person p new person 1,jvm會讀取指定的路徑下的person.class檔案,並載入進記憶體,並會先載入person的父類 如果有直接的父類的情況下 2,在堆記憶體中的開闢空間,分配位址。3,並在物件空間中,對物件中的屬性進行預設初始化。4,呼叫對應的建構函...

子類的例項化過程

乙個物件例項化過程 person p new person 1.jvm會讀取指定路徑下的person.class檔案,並載入進記憶體.並且會先載入person的父類 如果有直接父類的情況下 2.在堆記憶體中開闢空間,分配位址.3.在物件空間中,對物件中的屬性進行預設初始化.4.呼叫對應的建構函式進行...