1. 程式人生 > >三種繼承方式

三種繼承方式

1、關於公有繼承,子類的物件可以直接訪問基類的公有的函式或者變數。

基類成員對派生類的可見性對派生類來說,基類的公有成員和保護成員可見,基類的公有成員和保護成員作為派生類的成員時,他們保持原有狀態,基類的私有成員不可見,基類的私有成員仍然是私有的,派生類不可以訪問基類的私有成員。
基類成員對派生類物件的可見性對派生類物件來說,基類的公有成員時可見的,其他成員不可見。所以,在公有繼承時,派生類的物件可以訪問基類中的公有成員,派生類的成員函式可以訪問基類的公有成員和保護成員。明確物件的可見性和類的可見性~~~~~~

2、私有繼承,子類的物件和基類的物件是獨立的,它不能直接訪問基類的任何成員函式或者成員變數,但是可以通過自己內部的成員函式去訪問公共和保護型別的。

基類成員對派生類的可見性對派生類來說,基類的公有成員和保護成員是可見的,基類的公有成員和保護成員都作為派生類的私有成員,並且不能被這個派生類的子類所訪問。基類的私有成員是不可見的,派生類不可以訪問基類中的私有成員。基類成員對派生類物件的可見性對派生類物件來說,基類的所有成員都是不可見的。所以在私有繼承時,基類的成員只能由直接派生類訪問,而無法再往下繼承。

3、保護繼承,子類的物件也不能直接訪問基類的公共和受保護的成員函式或者變數,但是可以通過自己的成員函式去訪問。基類成員對派生類的可見性對派生類來說,基類的公有成員和保護成員是可見的,基類的公有成員和保護成員都作為派生類的保護成員,並且不能被這個派生類的子類所訪問。基類的私有成員是不可見的,派生類不可以訪問基類中的私有成員。

基類成員對派生類物件的可見性對派生類物件來說,基類的所有成員都是不可見的。所以在保護繼承時,基類的成員只能由直接派生類訪問,而無法再往下繼承。    任何子類都可以轉換為父類,任何資料型別都可以轉換為object類