類的三種繼承方式

2022-04-08 18:33:10 字數 1253 閱讀 6548

首先來看類成員的訪問許可權。

private: 只能由該類中的函式、其友元函式訪問,不能被任何其他訪問,該類的物件也不能訪問.

protected: 可以被該類中的函式、子類的函式、以及其友元函式訪問,但不能被該類的物件訪問

public: 可以被該類中的函式、子類的函式、其友元函式訪問,也可以由該類的物件訪問。

記憶:類內函式/友元函式、子類函式、物件。

我們經常聽到這樣的說法:

1)乙個類友元可以訪問該類的任何成員(包括成員變數及成員方法,下同)。

2)private成員只有該類自身可以訪問,protected成員只有該類及其派生類可以訪問,public成員所有的人都可以訪問。

賓語(受事)是誰這一點很明確,是類的成員(包括成員變數及成員方法)。主語(施事)是誰?這是讓大家發生混淆的關鍵點。也是這個說法中含糊不清的地方。

想清楚一點,其實主語(施事)指的是乙個函式,而不是(當然更不是變數)。private/public/protected要控制的是乙個函式(施事)對乙個類的成員(包括成員變數及成員方法)的訪問許可權。因此比較完整的說法是:

1)乙個類友元(包含友元函式或者友元類的所有成員函式)可以訪問該類的任何成員(包括成員變數及成員方法)。

2)除去友元外,private成員只有該類自身的成員函式可以訪問,protected成員只有該類的成員函式及其派生類的成員函式可以訪問,public成員則所有的函式都可以訪問。

使用private繼承,父類的所有方法在子類中變為private;

使用protected繼承,父類的protected和public方法在子類中變為protected,private方法不變;

使用public繼承,父類中的方法屬性不發生改變; 

核心:父類成員的訪問許可權 繼承後 在子類中的訪問許可權  變成什麼樣了。

protected繼承和private繼承降低了訪問許可權。

類的三種繼承方式

類的繼承方式 公有型 public 保護型 protected 私有型 private 訪問控制修飾符也有public protected private3種型別。繼承方式不同,可訪問性也不同,這個部落格也很詳細 公有型派生 公有型派生表示對於基類中的public資料成員和成員函式,在派生類中依舊是...

tkinter 類繼承的三種方式

tkinter class繼承有三種方式。提醒注意這幾種繼承的執行方式 1.鋪tk.frame給parent 說明 import tkinter as tk def init self,parent self.rootframe tk.frame parent self.rootframe.pack...

類的三種繼承訪問方式

類的繼承有三種方式,其一為公有繼承 其二為私有繼承 其三為保護整合。其繼承原理大致如下 class a 建立乙個基類,即繼承的類 1.公有繼承 class b public a 以公有方式繼承a類,則a類中的成員屬性在繼承類中保持不變。2.私有繼承 class b private a 以私有方式繼承...