父類中的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 屬性 不推薦,我用的時候出現未知錯誤 獲取父類的類方法。為什麼使用屬性會出現問題?因...