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...