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

深圳常平网站建设制作公司网站开发qq群

深圳常平网站建设制作公司,网站开发qq群,正规网站建设的公司,太原哪里做网站好参考视频链接#xff1a;https://www.bilibili.com/video/BV13b411b7Ht?p27vd_source10065785c7e10360d831474364e0d3e3 代码的进化与重构#xff0c;从基本代码的讲解到逐步抽象成抽象类和接口。 文章目录 最初定义利用继承改进对方法进一步改进利用虚函数进行改进利…参考视频链接https://www.bilibili.com/video/BV13b411b7Ht?p27vd_source10065785c7e10360d831474364e0d3e3 代码的进化与重构从基本代码的讲解到逐步抽象成抽象类和接口。 文章目录 最初定义利用继承改进对方法进一步改进利用虚函数进行改进利用抽象进行改进利用接口进行改进最后给出最终的完整代码 最初定义 最初定义两个类Car 和 Truck namespace InterfaceAPPLication {class Car{public void Run(){Console.WriteLine(Car is Running);}public void Stop() {Console.WriteLine(Stopped);}}class Truck{public void Run(){Console.WriteLine(Truck is Running);}public void Stop(){Console.WriteLine(Stopped);}} }利用继承改进 两个类具有重复的代码Stop()方法不符合代码不重复出现的规则对代码进行改进将两个类继承自一个类 Vehicle namespace InterfaceAPPLication {class Vehcile{public void Stop(){Console.WriteLine(Stopped);}}class Car:Vehcile{public void Run(){Console.WriteLine(Car is Running);}}class Truck{public void Run(){Console.WriteLine(Truck is Running);}} }对方法进一步改进 继续观察Run方法对Run方法进行改进 namespace InterfaceAPPLication {class Vehcile{public void Stop(){Console.WriteLine(Stopped);}public void Run(string type){if (type Car){Console.WriteLine(Car is Running);}else if(type Truck){Console.WriteLine(Truck is Running);}}}class Car:Vehcile{}class Truck:Vehcile{} }利用虚函数进行改进 但是当有新的类从Vehcile派生的话就需要多Vehicle.Run(string type)函数体进行扩充不符合设计原则中的封闭原则。替代方式使用virtual虚函数修饰Run方法派生类对Run方法进行重写。 namespace InterfaceAPPLication {class Vehcile{public void Stop(){Console.WriteLine(Stopped);}public virtual void Run(string type){Console.WriteLine(Vehcile is Running);}}class Car:Vehcile{public override void Run(string type){Console.WriteLine(Car is Running);}}class Truck:Vehcile{public override void Run(string type){Console.WriteLine(Truck is Running);}} }利用抽象进行改进 基类Vehicle的Run方法被派生类重新实现所以Run方法的函数体是没有意义的所以可以修改为abstract方法同时 Vehicle类为抽象类 namespace InterfaceAPPLication {abstract class Vehcile{public void Stop(){Console.WriteLine(Stopped);}public abstract void Run(string type);}class Car:Vehcile{public override void Run(string type){Console.WriteLine(Car is Running);}}class Truck:Vehcile{public override void Run(string type){Console.WriteLine(Truck is Running);}} }Vehcile抽象类包含的方法不全是抽象方法当一个抽象类全部都是抽象方法的时候IVechile类就是一个全是抽象方法的类 。可以看到Vehcile :继承IVechile其中重写了 Filled() 和 Stop()方法没有重写Run(string type)方法不需要声明默认继承了然后Run(string type)在Car和Truck类中实现。 abstract class IVechile{public abstract void Filled();public abstract void Run(string type);public abstract void Stop();}abstract class Vehcile : IVechile{public override void Stop(){Console.WriteLine(Stopped);}public override void Filled(){Console.WriteLine(Pay and Filled);}}class Car : Vehcile{public override void Run(string type){Console.WriteLine(Car is Running);}}class Truck : Vehcile{public override void Run(string type){Console.WriteLine(Truck is Running);}} 利用接口进行改进 IVechile类就是一个全是抽象方法的类 abstract class IVechile{public abstract void Filled();public abstract void Run(string type);public abstract void Stop();}抽象类的抽象方法需要被派生类实现所以默认是public abstract, 改为接口后方法就不需要修饰符了接口的命名方式大写英文字母 Iname interface IVechile{void Filled();void Stop();void Run(string type);}注意在对接口中方法进行实现的时候没有实现的方法需要在抽象类中注明是待实现的抽象方法。 interface IVechile{void Filled();void Stop();void Run(string type);}abstract class Vehcile : IVechile{public void Stop(){Console.WriteLine(Stopped);}public void Filled(){Console.WriteLine(Pay and Filled);}abstract public void Run(string type);}最后给出最终的完整代码 using System; using System.Collections; using System.Data;namespace InterfaceAPPLication {interface IVechile{void Filled();void Stop();void Run(string type);}abstract class Vehcile : IVechile{public void Stop(){Console.WriteLine(Stopped);}public void Filled(){Console.WriteLine(Pay and Filled);}abstract public void Run(string type);}class Car : Vehcile{public override void Run(string type){Console.WriteLine(Car is Running);}}class Truck : Vehcile{public override void Run(string type){Console.WriteLine(Truck is Running);}}class Executer{static void Main(string[] args){Vehcile car new Car();car.Run(Car);car.Stop();Vehcile truck new Truck();truck.Run(Truck);truck.Stop();}} } 运行结果
http://www.zqtcl.cn/news/408390/

相关文章:

  • 建设部网站最新消息浏览器网站大全免费
  • 网站建设 选中企动力邯郸哪有做网站的公司
  • 个人网站cms系统网站排名下降了怎么办
  • 2o18江苏建设网站施工员模试卷哈尔滨app开发
  • 网站后台管理系统论文湖州交通网站集约化建设项目
  • 唐山地区网站开发公司郑州市哪里有网站建设
  • ps做汽车网站下载网络推广专员招聘
  • 荥阳网站开发WordPress 采集文章 图片
  • 网站域名登记证明文件音乐网站开发需要什么语言工具
  • 贵州域网网站建设东莞做外贸网站的公司
  • ps怎么做华为网站界面怎样做网站步骤
  • 免费做试卷的网站或试卷seo 培训教程
  • 创意网站建设价格多少最新新闻热点事件2022年8月
  • wordpress用户登录界面插件重庆网站排名优化公司
  • 网站整体建设方案设计wordpress 插件升级慢
  • 淄博网站制作升级优化青岛品牌网站建设价格
  • 网站后台管理系统模块星星wordpress模板
  • 网站统计 中文域名优化英语
  • 自己做视频的网站吗怎么建设维护学校的网站
  • 广州网站建设好公司鲁权屯网站建设
  • 网站多数关键词网站使用mip后效果怎么样
  • 如何介绍自己做的网站建设三库一平台
  • 郑州网站商城建设iframe 一直网站底部
  • 1688网站怎么样百度一下你知道
  • 做电商图的设计网站蚌埠网页设计培训
  • 江苏省建设工程质量监督站网站手机网站 案例
  • 优而思 网站科技自立自强是国家强盛之基
  • 去哪里购买网站空间专门做家居的网站
  • 网站信息安全建设方案公众号网站建设
  • 网站的设计方案淘宝大数据查询平台