很抱歉,这个问题没有什么奇怪的标题。
我曾经被教导过.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
和一个继承fooList
的类foo
,根据说法(C#不支持多重继承),类foo
的对象应该只有一个来自fooList
类的方法Index()
, 但是它具有更多的来自object类的方法。这明确表明默认情况下所有的类都继承object
类,因此问题就产生了。
- C#真的完全不支持多重继承吗?
- 我猜它在CLR层面支持多重继承,那么为什么它在编码中不支持呢?