Извините, у меня не было никакого напуганного названия.Множественное наследование и объекты C#
Меня учили, что .Net (C#) не поддерживает Множественное наследование. Но, глядя на пример foo ниже, я задаюсь вопросом, правда ли это?
class fooList
{
public int Index()
{
return 0;
}
}
class foo : fooList
{
public foo()
{ }
}
class testFoo
{
void test()
{
foo obj = new foo();
// From object
obj.Equals(obj);
obj.GetHashCode();
obj.GetType();
obj.ToString();
// From fooList
obj.Index();
}
}
Как мы можем видеть, что у меня есть класс fooList
и класс foo
который наследует fooList
согласно изречениям (C# не поддерживает множественное наследование) объект класса foo
должен иметь только один метод, который Index()
из класса fooList
, но он имеет больше методов из класса объектов. Это ясно указывает, что по умолчанию все классы наследуют класс object
. Поэтому вопросы поднимаются
- Действительно ли это действительно так, что C# не поддерживает несколько Inheritance?
- Я предполагаю, что он поддерживает его на уровне CLR, Чем он не поддерживает его в кодировке?
Это не случай множественного наследования. Каждый класс наследует объект, если не указано иное. Если вы наследуете другой класс напрямую, вы косвенно наследуете объект, поскольку этот класс наследует объект. Объект является корнем для всех объектов. – Andreas
'class fooList' является сокращением для' class fooList: object'. Это должно устранить вашу путаницу. – user1096188