137 子類例項化的幾個問題

2021-09-19 20:36:40 字數 755 閱讀 1781

1、為什麼除了object類,所有類例項化都要呼叫父類建構函式?

因為除了object類,每個類都有乙個父類;

父類中的非靜態成員變數的賦值操作,只能由父類的建構函式去完成;

所以子類的建構函式中,必須先呼叫父類建構函式,給父類的非靜態成員變數顯示賦值;

2、子類建構函式中,this() 和 super() 能否同時存在?

不能;this()和super()都必須放在子類建構函式的第一行;

子類建立物件時,super()只需要執行一遍;

3、如果父類中沒有無參建構函式,子類如何例項化?

兩種辦法:

1、在父類中新增乙個無參建構函式;

2、在子類中手動呼叫父類有參建構函式

l 呼叫普通成員:

this.成員變數       可以訪問本類物件的成員變數

super.成員變數     可以訪問父類物件的成員變數

this.成員方法()     可以訪問本類物件的成員方法

super.成員方法()    可以訪問父類物件的成員方法

l 呼叫構造方法:

this(其他引數)      可以訪問本類其他的構造方法

super(其他引數)    可以訪問父類其他的構造方法

l 預設子類呼叫父類構造方法

子類的每個構造方法中均有預設的super(),呼叫父類的空參構造。手動呼叫父類構造會覆蓋預設的super();

幾個問題的

1.寫乙個函式返回引數二進位制中 1 的個數 比如 15 0000 1111 4 個 1 程式原型 int count one bits unsigned int value 解 無符號整型為32位,所以利用迴圈32次,逐個判斷二進位制每一位是不是1 int count one bits unsig...

關於虛擬化技術的幾個問題

前兩天有人問了我幾個伺服器虛擬化的問題,這裡我總結一下,分享給大家 1 全虛擬化與準虛擬化的真正區別在哪?真正區別在於架構不同 由於虛擬機器的指令和傳統作業系統的指令內涵不一致 例如關機,虛擬機器只要求釋放記憶體與cpu時間,而傳統指令需要斷電 所以如何讓硬體執行傳統os的指令是關鍵。全虛擬化是將傳...

String的幾個問題

1.已知strcpy的函式原型 char strcpy char strdest,const char strsrc 其中strdest 是目的字串,strsrc 是源字串。不呼叫c c 的字串庫函式,請編寫函式 strcpy。答案 char strcpy char strdest,const ch...