Super的使用, this 與super

2021-10-10 04:45:43 字數 1146 閱讀 5177

super 關鍵字可在子類中訪問父類的方法,也可以訪問父類的屬性

其實和this關鍵字聯絡起來對比理解就明白了

乙個三層結構的例子

b繼承a,那麼在例項化b的時候,a和b哪個構造方法先執行呢?

結果: 先執行a的構造方法,然後才執行b的構造方法,因為有了父類才會有子類

在jvm的物理結構:

在堆中:先構造父類物件,先執行父類的構造方法,然後再執行子類的構造方法(new 的過程)

在棧中:建立了乙個變數b

最後:堆中的物件就指向了變數

為什麼會先執行父類的構造方法呢?

可以這麼理解,因為子類的構造方法中預設存在super();這麼一句**:呼叫父類的無參構造方法,這句語句是預設存在的,你寫不寫都可以

其實不僅僅是無參構造,其實有參構造在子類中也是加了這麼一句:super();

this表示當前物件引用,呼叫本類的屬性、方法、本類的構造方法。其實還包括了繼承的屬性、方法、本類的構造方法

super 表示父類物件引用,呼叫父類的屬性、方法、構造方法

說明一下舉的這個例子: this() 指的是呼叫本類的無參構造方法,super()指的是呼叫父類的無參構造方法

請說明一下上面的例子列印的順序??、

new b(10)呼叫b的有參構造,然後this(),呼叫b的無參構造,super()呼叫父類a的無參構造

所以順序是:a-無參構造-----> b-無參構造-------->b有參構造

su與su 命令的區別

大部分linux發行版的預設賬戶是普通使用者,而更改系統檔案或者執行某些命令,需要root身份才能進行,這就需要從當前使用者切換到root使用者。su命令和su 命令最大的本質區別就是 前者只是切換了root身份,但shell環境仍然是普通使用者的shell 而後者連使用者和shell環境一起切換成...

su與su 命令的區別

su與su 命令的區別 本人以前一直習慣直接使用root,很少使用su,前幾天才發現su與su 命令是有著本質區別的!www.2cto.com 大部分linux發行版的預設賬戶是普通使用者,而更改系統檔案或者執行某些命令,需要root身份才能進行,這就需要從當前使用者切換到root使用者。linux...

Linux常用命令使用 su 與su

su 選項 引數 c 指令 或 command 指令 執行完指定的指令後,即恢復原來的身份 f或 fast 適用於csh與tsch,使shell不用去讀取啟動檔案 l或 login 改變身份時,也同時變更工作目錄,以及home,shell,user,logname。此外,也會變更path變數 m,p...