- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
继承自接口的函数,并不会自动视为virtual 对继承自接口的函数可以有几种处置 用virtual public加以修饰,实现为virtual public函数 只以public修饰, 实现为非虚函数 ,当以接口类引用来调用此函数,将静态决议为接口的直接派生类实现版本 不实现, 以public abstract修饰 即成为类抽象函数 前例,若希望能动态决议Paint(),应在Control中实现为virtual函数,并且,在TextBox中override Paint() 若一定要在Control实现Paint()为非虚,但又希望上述调用语句能调用TextBox的Paint(), 可以采用另一个做法,就是 把TexBox作为IControl的直接派生类: class TextBox:Control, IControl {...} 对多个接口的继承探究 考虑下述例子 interface IA { void doSth();} interface IB { void doSth();} class aMed : IA, IB { public void doSth() { ...} //实现了哪一个doSth()? } 事实上,上面实现的是一个复合体,这是合乎逻辑的。 因为本来接口定义的就是抽象性,既然是抽象的,不同接口的同名函数当然也可以作相同抽象的解读 但若有必要,也可以分别实现来自不同接口的同名函数,做法如下: class aMed : IA, IB { public void IA.doSth() { ...} public void IB.doSth() { ...} } 在调用时,若以IA型引用来调用 则会执行IA的实现版本,IB版本的执行同理, 如: IB am= new aMed(); am.doSth(); //将调用IB的实现版本 更进一步,既可同时提供 IA和IB的实现,也可以是复合版 interface IA { void doSth();} interface IB { void doSth();} class aMed : IA, IB { void IA.doSth() { ...} //不需访问修饰符 void IB.doSth() { ... } public void doSth() { ... } //复合的实现 } class Program { static void Main(string[] args) { aMed am = new aMed(); am.doSth(); // 调用复合版本 ((IA)am).doSth(); //调用IA版 ((IB)am).doSth(); //调用IB版 } } * * * * * * * * * * * * 第二部分 C#语言进阶篇 (1)关于类代码区 内、外的理解 public?class?OneClass????{??????//....????????private?void?Func1()?{?Console.WriteLine(“Func1()”);?}????????public?static?void?Func2(OneClass?obj)????????{????????????obj.Func1(); // obj在此由外部传入,这里属于在外部 访问private函数吗?????????}????} public class program { static void Main() { OneClass oneobj=new OneClass(); OneClass.Func2(oneobj);//调用Func2() } } 1. 一些语言现象辨析 (2)关于对虚函数的 override 与 new 的区别 ????public?class?Teacher ????{???public?virtual?void?Paper() ????????{????????????Console.Write(老师出试卷);??????} ????} ????public?class?S1?:?Teacher ????{???public?override?void?Paper() ??
您可能关注的文档
最近下载
- 2022二级建造师《机电》章节练习6.1.docx VIP
- 荆轲刺秦王教学课件.ppt VIP
- 《角膜移植手术》课件.ppt VIP
- 2008年工业企业厂界环境噪声排放标准.pdf VIP
- 2025年第十九届天原杯全国初中奥林匹克化学竞赛试题及答案 .pdf VIP
- GB50169-2016 电气装置安装工程接地装置施工及验收规范.docx VIP
- 人教版三年级数学上册第八单元《分数的初步认识》课堂作业设计.pdf VIP
- 中药饮片产品质量回顾分析报告.pdf VIP
- 2022二级建造师《机电》章节练习5.31.docx VIP
- 山东省泰安市肥城市2024-2025学年八年级上学期1月期末考试历史试题 .docx VIP
原创力文档


文档评论(0)