从类继承

Inheriting from classes

提问人:DNR 提问时间:9/7/2009 最后编辑:George StockerDNR 更新时间:9/7/2009 访问量:723

问:

在 C# 中,可以从多少个类继承?

当你写的时候:

using System.Web.UI;

这算不算是从类继承来的?

C# 继承 using 指令

评论


答:

7赞 Mark Rushakoff 9/7/2009 #1

using 指令

using X.Y.Z;

仅表示,如果标识符不在本地命名空间中,则还将在命名空间中搜索该标识符。这允许你有更简洁的代码,所以如果你有,你就不必这样做。我不认为你可以有多少个陈述是有限制的。X.Y.ZSystem.IO.Path.Combine()using System.IO.Pathusing

C# 不允许多重继承 -- 只能从一个类继承。但是,您可以根据需要实现任意数量的接口。

评论

0赞 manji 9/7/2009
using namespace 指令只能应用于命名空间;“System.IO.Path”是一个类型,而不是命名空间
3赞 Frederik Gheysels 9/7/2009 #2

只能从一个类继承。

编写“使用 System.Web.UI”与继承无关。 此语句仅表示要“使用”命名空间 System.Web.UI 中的类,以便可以直接编写类名,而不是以命名空间名称为前缀。

7赞 George Stocker 9/7/2009 #3

离子

using 指令允许您在向代码添加控件或类时键入完全限定的命名空间。

例如,如果我添加:

using System.Web.UI;

然后我可以简单地写:

Page.Something

而不是:

System.Web.UI.Page.Something

继承
您只能从一个类继承,但您可以根据需要实现任意数量的接口

如果我的所有页面都继承自一个基类,那么该基类将需要从该类继承才能发挥任何作用。Page

1赞 Tony the Pony 9/7/2009 #4

不。

  1. using使外部定义的类可见
  2. class Cat : Animal定义派生(继承)自PetAnimal

与C++不同,C#不支持多重继承,因此只能从一个类派生它(但是,您可以实现任意数量的接口)

1赞 Pete OHanlon 9/7/2009 #5

我想为Jen给出的答案添加一个附录。可以说 C# 不支持多重继承,但知道可以通过忽略 CLS(命令语言子系统)在 .NET 中实现多重继承会很有用。这是一项令人讨厌的工作,涉及您滚动自己的 vtable,但这是可能的。