java這道基礎題為什麼是這樣的結果誰能給講講

2021-07-01 05:55:37 字數 928 閱讀 3865

1樓:匿名使用者

執行main方法時,執行derived類的例項化方法也就是無參構造器方法。因為derived繼承與base,所以在執行構造器是隱藏執行父類的無參構造器,執行base類無參構造器中的tellname和printname方法,因為這兩個方法被derived重寫了,所以執行derived類中的tellname和printname方法,但此時name屬性還沒被初始化,所以輸出的是null,下面兩行輸出的就是derived類本身的方法,此時name屬性被初始化,所以得到了你的答案

2樓:匿名使用者

建立子類物件時,若未顯式呼叫父類建構函式,系統隱式呼叫super()方法,這時候new drived(),會跳轉到base();然後初始化name屬性為base,接著呼叫tellname()方法,此時呼叫的物件(this)為drived物件!所以又直接跳轉到drived類執行tellname方法,此時drived類的name屬性尚未賦值,所以輸出dervied tell name: null接下來同理輸出dervied print name:

null,然後執行drived類的構造方法,初始化name屬性為drived,所以輸出dervied tell name: dervied和dervied print name: dervied。

關鍵在於弄清楚呼叫方法的物件是誰!

new drived()會跳轉到base(),但是此時this為drived物件!

public base()

public dervied()

3樓:匿名使用者

dervied extends base 繼承dervied複寫兩個方法 所以印出來的都一樣!!

dervied.class

base.class

兩個方法是一樣的所以內容被複寫了!!!

這樣你知道了嗎???

高數求極限。這道題為什麼不能直接代入

代入後第二排的兩個lnx都沒有極限存在,所以不能帶入 要代入,那就要分子分母同時代入,你不能只代入分母,不代入分子。然後,代入後,ln0,有意義嗎?這兩題高數求極限為啥不能直接吧0和無窮直接代入呢?求極限函式連續當然可以帶入,這兩道題帶入後都是1 然而1 不一定等於版1,因為底數只是趨權於1,可能1...

JAVA問題 我真不明白為什麼是這樣的 抽象類變數名new類名為什麼這樣定義??有什麼好處

這個應該是一個簡化形式的繼承抽象類,抽象方法,道理跟繼承抽象類一樣,並且形式上更簡潔,更優化 new 後面的類名需要是前邊抽象類的子類才行,這叫多型。如果new後面的類還是前面的那個抽象類名,則會報錯,因為抽象類不能夠例項化。建立物件 呼叫方法 抽象類是不能例項化的 物件跟我說這話,是什麼意思呢,什...

計算價格點需求彈性的時候,這道題為什麼在前面加個負號啊

你可以自行在維基百科上搜尋下 需求的 彈性 這個公式本身就是帶有負號的,因為需求曲線的斜率都是負數,所以在公式前有個負號能保證結果是正的 求 點彈性 公式中到底要不要加負號啊 考試的時候到底加不加啊 好糾結 我們計算 點彈性的時候都是要加負號的,因為需求量和 是呈反方向變化的。再在負號外面加個絕對值...