2011-03-09 47 views
0

我們知道所有的類都是從.net中的對象類繼承而來的。假設我們創建了一個名爲ClassA的類。然後我們創建另一個類ClassB,繼承自ClassA。這不是多重繼承,因爲ClassB繼承了Object類和ClassA嗎?這是否違反了C#.net不支持多繼承的規則?.net中多重繼承的疑問

+0

你的問題是什麼?此外,它不是反例,ClassB繼承自ClassA,它繼承自Object。 ClassA不會直接從Object繼承。 – markijbema 2011-03-09 10:56:48

+0

如果您有問題,請提出問題。 – Gabe 2011-03-09 11:05:35

+0

你的例子顯示了繼承層次結構,而不是多重繼承。多重繼承是ClassC從ClassB和ClassA繼承的時候。因爲MI不被支持,所以你無法在.NET中完成此操作。 – 2011-03-09 11:13:28

回答

1

不,你不打破規則。由於ClassA是一個對象,它並不意味着你從兩個不同的類繼承。你繼承了ClassA,從而從「繼承鏈」中獲得了它的所有特徵。
由於ClassA是一個對象,因此您不是繼承2種不同的類型。

3

你不明白什麼是多重繼承。來自維基百科:

多繼承是指一些面向對象的編程語言的一個特性,其中一個類可以繼承多個超類的行爲和特徵。

維基百科對超類項:

父類,基類,或父類是其他類中派生的類。從超類派生的類稱爲子類,派生類或子類。

在你的例子中,ClassA繼承自object。 ClassB從ClassA繼承。 ClassA是ClassB的超類。對象不是ClassB的超類。你的例子不是多重繼承。有一位家長,一位孩子。