对多重继承感到困惑

Pan*_*kaj 2 .net c# oop

我刚读了一些C#类不能从多个类继承的地方,同时我还读到每个C#类都是从基类"Object Class"继承而来的.

现在我很困惑如果我让另一个类继承一些类,那么它继承自类和基类,即两个类.

这不违法吗?

Jer*_*vel 9

每个类都继承自另一个类.如果你让你自己的类扩展你的其他类之一,那么它不会直接继承,Object而是从你的超类继承.反过来的超类将继承自Object.

你的子类将Object通过超类提供所有可用的方法.

这将说明它:

void Main()
{
    Console.WriteLine (new Super().GetType().BaseType);
    Console.WriteLine (new Sub().GetType().BaseType);
}

class Super { }
class Sub : Super { }
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述


Uwe*_*eim 9

这在C#中是可能的:

在此输入图像描述

(每个派生类一个基类,又名"单继承 ")

这在C#中是不可能的:

在此输入图像描述

(多重继承,在C#中使用接口)


Eri*_*ert 6

我只是读了一些C#类不能从多个类继承的地方,同时我还读到每个C#类都是从基类"Object"继承的.现在我很困惑.

除了object之外的每个C#类都直接从其他一个类继承.对象从没有类继承.

AC#类可以间接地从任何(非负数!)类继承.

class Animal : Object {}
class Giraffe : Animal {}
Run Code Online (Sandbox Code Playgroud)

我们的规则符合吗?是.对象从没有类继承.Animal直接从Object继承,间接从没有类继承.长颈鹿直接从动物身上继承,间接从遗传身上继承.

这消除了矛盾.