多重繼承兩個父類都有成員

2021-08-22 08:50:43 字數 593 閱讀 8621

剛剛在寫python遇到乙個奇妙的問題,然後查了半天才搞懂。

在寫多重繼承的時候,如果兩個父類a,b都有成員需要繼承,用super會出錯,只能用兩個__init__()方法

例如:class a():

def __init__(self,a):

self.a = a

def cout(self):

print(self.a)

class b():

def __init__(self,b)

self.b = b

def cout(self):

print(self.b)

class c(a,b):

def __init__(self,a,b,c)

a.__init__(self,a)

b.__init__(self,b)

self.c = c

def cout(self):

print(self.c)

如果用class c(a,b):

def __init__(self,a,b,c)

super(a,b,self).__init__(a,b)

將會出錯。

繼承父類私有成員是否可以修改

includeusing namespace std class base public void print a 1 cout 用public方法繼承父類的public成員函式和private私有成員變數,子類自己的成員函式print不能訪問繼承父類的私有變數,但是繼承的print函式可以訪問繼承...

c 父類的私有成員能否繼承

1.子類可以間接訪問父類私有成員 父類的私有成員函式和私有成員變數一樣,只有該類內部的其他成員函式可以呼叫,對外是封蔽的。子類繼承了父類的共有函式,且父類的公有函式呼叫了其內部的私有函式,此時子類呼叫父類的公有函式便能訪問父類的私有成員函式了。include using namespace std ...

JAVA中的父類私有成員變數的繼承問題

如果父類中屬性為私有 private 那麼能否被子類繼承呢?答案是不可以。我們看如下簡單 class father class sonextends father public class privatefieldtest 得到的結果是 my name is null my name is null...