父類中的this

2021-07-02 07:07:59 字數 2177 閱讀 5566

父類中的this到底指向的是父類還是子類?為此做了下實驗,**如下:

public

class

thisinparent

public

static

void

main

(string

args

)

}

class

p

public

voidf()

}

class

child

extends

p

public

voidf()

}

執行該類得到的結果如下:

child

child

p

parent

從上述結果看出:

(1)new child的過程中,作為child的直接父類p因為子類的隱式呼叫也進行了構造器的呼叫,輸出結果為類名child和方法f()輸出child,可以看出此時的this代表的是子類的引用,並且呼叫f()時呼叫的是子類重寫的父類方法,更加證明了this為子類的引用。

(2)另外直接new p父類的過程中,直接輸出了p,parent的結果。

所以由以上結論得出,具體new那乙個物件,如果在其父類中有對this 的引用,則該this一律指向的的是該被new的子類。

下面有乙個三層繼承的例子,可以更好的加以佐證

public

class

thisinparent

public

static

void

main

(string

args

)

}

class

p

public

voidf()

}

class

child

extends

p

public

voidf()

}

class

grandchild

extends

child

public

void

f()

}

輸出結果:

grandchild

grandchild

grandchild

grandchild

child

child

child

child

p

parent

iOS重寫父類中的方法時要先呼叫父類中的方法的原因

現有兩個類 1.object001繼承自nsobject import inte ce object001 nsobject object001的標頭檔案,我只是在這裡面宣告了個方法 void printfstring end import object001.h implementation ob...

頁面繼承父類,在父類中判斷使用者登入

現在一般的 都會設計到判斷使用者登入的問題,這其中有很多中解決方案。用物件導向的繼承思想來實現是一種較好的解決方案。很簡單,就是再父類 pagelogin.cs 中進行登入判斷,每個頁面都要繼承這個父類,父類中通過重寫oninit來實現再頁面page load之前進行登入驗證。pagelogin.c...

Python 類方法中呼叫父類的類方法

3.super 測試 推薦使用,安全 如果類的物件方法呼叫父類的物件方法,可以使用super 函式獲取父類的物件方法 如果在類方法中呼叫父類的類方法,則可以使用super 推薦,暫時未發現問題 或者cls.base 屬性 不推薦,我用的時候出現未知錯誤 獲取父類的類方法。為什麼使用屬性會出現問題?因...