仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 590|回复: 6
打印 上一主题 下一主题

[学习教程] 来一篇关于NET的C#中的接口(interface)

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:25:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我认为,可以通过更加简单的首次编译,而增加第二次编译的负担,来提高java的运行效率。只是将java源代码进行简单的等价转换,而不假设编译成某种虚拟机器的目标格式,而由本地编译器针对性的二次编译。1,都是“虚的”不克不及被实例化,这也是接口中为何不克不及包括字段--成员变量的缘故原由
2,正由于接口是虚的,以是接口内的索引,属性,工夫等只能有声明,而不克不及在接口内完成,详细怎样完成是派生接口大概派生类的事。
3,都具有模板的性子,假如一个接口大概类从某一个接口承继,它将主动具有被集成者的特性(包含索引,属性,函数,理论等)。
4,接口撑持多重承继,而C#中,类之撑持单一承继,接话柄际暗示的是一种承载才能。

上面是接口的一个复杂界说:
承继"基类"跟承继"接口"都能完成某些不异的功效,但有些接口可以完成的功效是只用基类没法完成的

1,接口用于形貌一组类的大众办法/大众属性。它不完成任何的办法或属性,只是告知承继它的类,最少要完成哪些功效,承继它的类能够增添本人的办法。
2,利用接口可使承继它的类:定名一致/标准,易于保护。好比:两个类"狗"和"猫",假如它们都承继了接口"植物",个中植物内里有个办法Behavior(),那末狗和猫必需得完成Behavior()办法,而且都定名为Behavior如许就不会呈现定名太混乱的征象。假如定名不是Behavior(),接口会束缚,即不按接口束缚定名编译不会经由过程。
3,供应永久的接口。当类增添时,现有接口办法可以满意承继类中的年夜多半办法,没需要从头给新类计划一组办法,也节俭了代码,进步了开辟效力。

举个代码示例:
//大众接口:"植物"
publicInterfaceIAnimal
{
intEyeNumber;
privatevoidBehavior();//举动办法,形貌各类植物的特征
}

//类:狗
publicDog:IAnimal
{
stringActiveTime="日间";
privatevoidBehavior()
{
{
Console。Write("我早晨睡觉,日间举动");
}
}

//类:猫
publicCat:IAnimal
{
stringActiveTime="夜晚";
privatevoidBehavior()
{
{
Console。Write("我日间睡觉,早晨举动");
}
}

//复杂的使用:
publicstaticMain()
{
DogmyDog=newDog();
myDog。Behavior();//输入:"我早晨睡觉,日间举动"
CatmyCat=newCat();
myCat。Behavior();//输入:"我日间睡觉,早晨举动"
}

以上挪用分歧的类的不异名办法,会输入分歧的东东,也就是说每一个类内里的同名办法完成的功效能够是完整分歧的。

更进一步,不是用下面Main办法如许一个一个挪用类的办法,用多态性完成其挪用。
看一下上面这个办法:
publicBehavior(IAnimalmyIanimal)
{
myIanimal。Behavior();
}

其参数是<<接口范例>>,任何承继它的类都能够挪用此办法,此办法能依据类的分歧挪用分歧的类中的办法。也即可以本人依据分歧的类,完成分歧的类的功效。
多态性代码示例:
DogmyDog=newDog();
CatmyCat=newCat();
Behavior(myDog);//Behavior承受“狗”类实例
Behavior(myCat);//Behavior承受“狗”类实例

如许Behavior办法写一次就可以完成一切承继它的类中的不异名办法的分歧功效。十分便利,

一样,因为“植物软件”功效需求,必要再增添一个"龟"类:
//类:龟
publicTortoise:IAnimal
{
stringActiveTime="很难说";
privatevoidBehavior()
{
{
Console。Write("我能够不举动,一睡就睡五千年!");
}
}

那末也能够挪用下面多态办法,以是说接口使办法具有较好扩大性。假如承继它的类良多的话,有几优点是不可思议的!

别的,也有笼统类可以完成但接口不克不及完成的情形:
1,在笼统类中能够加代码逻辑,但接口不克不及。
2,假如要在接口中增添一个办法,一切完成它的类都强迫重载一遍此办法,假如重载类良多时,会增年夜事情量。

总之,一样平常在仅完成单承继用处时,只管用笼统类,功效也更强些!我也不知道,我原来理解的,NET就是C++编程,只是与JAVA相对,呵呵。以为.ET就是高级C++编程。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-26 22:59:19 | 只看该作者
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
冷月葬花魂 该用户已被删除
板凳
发表于 2015-2-5 01:33:41 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
地板
发表于 2015-3-1 19:51:59 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
活着的死人 该用户已被删除
5#
发表于 2015-3-10 23:17:07 | 只看该作者
asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
愤怒的大鸟 该用户已被删除
6#
发表于 2015-3-17 16:09:05 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
变相怪杰 该用户已被删除
7#
发表于 2015-3-24 12:15:06 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-7 04:13

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表