当前位置: 首页 > news >正文

景德镇市建设厅网站网站开发项目分析模板

景德镇市建设厅网站,网站开发项目分析模板,网站内页没有排名,厦门优化公司在C#中#xff0c;子类并不直接“继承”父类继承的接口#xff0c;但子类的确会继承父类对接口的实现#xff08;如果父类实现了该接口#xff09;。这里有一些关键的概念需要澄清#xff1a; 接口继承#xff1a;当一个类实现了某个接口时#xff0c;它必须实现接口中…在C#中子类并不直接“继承”父类继承的接口但子类的确会继承父类对接口的实现如果父类实现了该接口。这里有一些关键的概念需要澄清 接口继承当一个类实现了某个接口时它必须实现接口中定义的所有方法。如果这个类有子类那么子类并不直接“继承”接口就像它不直接继承父类的字段或属性一样但是如果子类想要被当作该接口类型的实例来使用它必须确保自己或其任何父类已经实现了接口中的所有方法。 接口方法的实现如果父类实现了某个接口那么子类就间接地拥有了接口方法的实现如果子类没有覆盖这些方法的话。然而这并不意味着子类“继承”了接口而是说子类通过继承父类而获得了对接口方法的实现。 多态性在C#中接口支持多态性。这意味着你可以将子类的实例赋给接口类型的变量只要子类或其任何父类实现了该接口。这允许你在不知道具体实现类的情况下编写可重用的代码。 正常使用new interface IMyInterface{void DoSomething();}class ParentClass : IMyInterface{public void DoSomething(){Console.WriteLine(Doing something in ParentClass);}}class ChildClass : ParentClass{// ChildClass 并没有直接实现 IMyInterface但它继承了 ParentClass 对 IMyInterface 的实现 // 如果需要ChildClass 可以覆盖 DoSomething 方法来提供自己的实现 public new void DoSomething() // 注意这是隐藏new而不是覆盖override因为接口方法不能被覆盖 {Console.WriteLine(Doing something in ChildClass);}// 或者如果你想要真正地覆盖但只能在接口方法的签名被某个虚方法或抽象方法显式实现时才能做到 // 你需要在父类中有一个虚方法或抽象方法然后在子类中覆盖它 // 但由于这里直接实现了接口所以我们只能隐藏方法或使用其他设计模式 }class Program{static void Main(string[] args){IMyInterface obj1 new ParentClass();obj1.DoSomething(); // 输出Doing something in ParentClass IMyInterface obj2 new ChildClass();obj2.DoSomething(); // 默认情况下输出Doing something in ParentClass因为 ChildClass 隐藏了 DoSomething // 如果你想要 ChildClass 的 DoSomething 被调用并且你正在处理接口类型的引用 // 你需要确保不隐藏父类的方法或者通过其他方式如类型转换来调用 ChildClass 的方法 // 例如通过显式类型转换调用 ChildClass 的新方法注意这不是多态 ((ChildClass)obj2).DoSomething(); // 输出Doing something in ChildClass但这会破坏多态性 }}修改后让子类可在接口中被调用 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace testDebug {interface IMyInterface{void DoSomething();}class ParentClass : IMyInterface{public virtual void DoSomething(){Console.WriteLine(Doing something in ParentClass);}}class ChildClass : ParentClass{// ChildClass 并没有直接实现 IMyInterface但它继承了 ParentClass 对 IMyInterface 的实现 // 如果需要ChildClass 可以覆盖 DoSomething 方法来提供自己的实现 public override void DoSomething() // 注意这是隐藏new而不是覆盖override因为接口方法不能被覆盖 {Console.WriteLine(Doing something in ChildClass);}// 或者如果你想要真正地覆盖但只能在接口方法的签名被某个虚方法或抽象方法显式实现时才能做到 // 你需要在父类中有一个虚方法或抽象方法然后在子类中覆盖它 // 但由于这里直接实现了接口所以我们只能隐藏方法或使用其他设计模式 }class Program{static void Main(string[] args){IMyInterface obj1 new ParentClass();obj1.DoSomething(); // 输出Doing something in ParentClass IMyInterface obj2 new ChildClass();obj2.DoSomething(); // 默认情况下输出Doing something in ChildClass因为 ChildClass override了 DoSomething // 如果你想要 ChildClass 的 DoSomething 被调用并且你正在处理接口类型的引用 // 你需要确保不隐藏父类的方法或者通过其他方式如类型转换来调用 ChildClass 的方法 // 例如通过显式类型转换调用 ChildClass 的新方法注意这不是多态 ((ChildClass)obj2).DoSomething(); // 输出Doing something in ChildClass但这会破坏多态性 }} }
http://www.w-s-a.com/news/416959/

相关文章:

  • 工作网站建设中布线费用账务处理特色的重庆网站推广
  • dede 网站地图模板htm写作网站水平哪个最好
  • 服务器上的网站erp教学零基础入门
  • 网站建设58设计资料网站
  • 如何把动态图发网站做头像网页设计实训报告小结
  • 做简历用的网站wordpress版权说明
  • 网站关键词有哪些网站新闻前置审批
  • 怎么自己注册网站义乌做公司网站
  • 做哪种网站赚钱苏州住房城乡建设部网站
  • 镇江做网站学编程学哪一种比较好
  • 华美天一建筑公司网站赚钱做任务的网站有哪些
  • asp网站打开速度慢家乡网页设计教程
  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率
  • 网站及推广wordpress 分享主题
  • 房产网站有哪些如何自己建一个微网站
  • 青岛市黄岛区城市建设局网站手机域名访问网站怎么进入
  • 网站模板 双语河南省建设人才信息网官网
  • 网站建设备案优化之看邹城网站开发
  • 网站方案书图书馆网站建设公司
  • 公司取名网免费版在线网站优化公司
  • dw怎么做秋季运动会网站九江集团网站建设
  • 响应式网站建设服务商wordpress 非小工具形式 微博秀
  • 网站安全检测漏洞扫描风险等级分布建设一个网站步骤
  • 摄影网站的意义开发企业小程序公司