發新話題

C++ Gossip - 物件導向《繼承》保護(protected)繼承、私用(private)繼承

C++ Gossip - 物件導向《繼承》保護(protected)繼承、私用(private)繼承

在繼承時採公開(public)繼承的方式來繼承一個類別時,父類別與子類別為"is-a"的關係,子類別繼承父類別的公開(public)介面及受保護(protected)的成員,子類別是父類別的細化型態。

保護(protected)繼承可以改變繼承下來的基底類別成員權限,保護的意思就是讓這些成員繼承下來之後,保護它們僅能在類別與衍生類別中使用,保護繼承的語法如下所示:
class B : protected A {
    // 實作
};


保護繼承時使用protected來繼承基底類別,繼承下來的成員在衍生類別中的權限變為如下:
基底類別衍生類別
private不繼承
protectedprotected
publicprotected

簡單的說,原來的權限在protected以下的保留其原來權限,而在protected以上的就降為protected,子類別protected繼承的目的在只希望保留父類別中已實作的公開成員與受保護的成員為己用或接下來的衍生類別使用,並提供自己的公開介面。

您也可以在繼承基底類別之後,將它所有的成員一律改為私用(private),使用私用(private)繼承可以達到這個目的,其語法如下:
class B : private A {
    // 實作
};



基底類別中的成員在被繼承之後,其權限如下所示:
基底類別衍生類別
private不繼承
protectedprivate
publicprivate

private繼承被稱為「實作繼承」,意味著子類別只想保留父類別中已實作的公開與受保護的成員為己用,並提供自己的公開介面與接下來會被繼承的受保護的成員。

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。