從乙個小例題學習super 函式的特點

2021-08-20 05:25:55 字數 687 閱讀 3576

題目如下:寫出程式執行結果

class super

public super() }

class demo extends super

public static void main(string args)

}

執行結果:b c 7

解析:super d=new demo("a");時,會呼叫demo的有參建構函式,而建構函式第一行有個super()【隱式的,下面會解釋】,於是就到父類中,此時i為0,執行父類的無參建構函式

public super()

,此時列印b且i為2;執行完之後再回到demo的建構函式

public demo(string a)

繼續執行,列印c此時i為7.

那麼為什麼在demo建構函式第一行會有隱式的super函式呢?

是這樣的,1.當父類中有個空引數的建構函式時候,子類所有的構成函式裡第一行預設都有一句supr():呼叫父類的空引數構成函式;所以子類初始化時候,要先訪問下父類建構函式,如果要訪問父類指定的建構函式,可以手動定義super語句,子類中至少有個建構函式會訪問父類建構函式;

2.當父類中沒空引數的建構函式時候,而是有引數的父類建構函式。這時super()不能隱式。則必須自己在子類的構成函式裡第一行預設新增super(引數)

從乙個例項學習 FLASK WTF

本案例通過實現乙個註冊頁面的編寫,來帶你了解flask wtf的運用.主要功能為表單基礎的功能 手機號碼必須為11位數,且通過資料庫查詢不能有已經註冊的了,密碼要求輸入兩遍且必須一樣,且所有內容不能為空的提示等內容.那麼現在就開始把 一.建立表單類.首先運用flask wtf你必須確保你的環境中已經...

c 學習筆記 03 從乙個小程式說起2

從乙個小程式說起2 要求 編寫乙個程式,要求使用者輸入一串整數和任意數目的空格,這些整數必須位於同一行中,但允許出現在該行中的任何位置。當使用者按下鍵盤上的 enter 鍵時,資料輸入結束。程式自動對所有的整數進行求和並列印出結果。c語言版本 1 include 2 include 3 4void ...

從乙個小例子理解stdio 和 sysio

系統環境 ubuntu include include include int main 如上 執行結果可選項 ababab or aaabbb or bbbaaa 正確答案 bbbaaa。原因 我們知道標準io不僅僅存在於unix中,在很多其他的作業系統中都實現了標準io庫,當然不同的作業系統標準...