在项目开发中,什么情况下才会用abstract抽象类?谢谢!!! 同上!!!谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 嘻嘻,也许上面那个例子说的不清楚。再说一个比较常见的例子吧。这次要做一个文件管理器。目的是对自己的文档进行管理。展现方面可以显示文件的最后修改时间,可以显示文件的大小。文件的路径。功能方面可以打开Word,Excel,Txt,mp3... ...等等格式的文件。其中点mp3后要能播放,点Word能用Word打开,点击Txt可以直接编辑,,依次类推。(不考虑一种文件可以被多种工具软件打开的情况)首先要建立一个文件的抽象类。这个类包括文件路径,文件修改时间,还有一个抽象的打开过程等等通用的东西,只要是文件就一定会有的属性或方法。然后在这个抽象类基础上派生出Word类,Excel类,Txt类,mp3类 在Word类中的打开事件中调用Word,在Excel类中的打开事件中调用Excel,在Txt类中的打开事件中调用程序本身的编辑器,在mp3类中的打开事件中调用程序本身的播放器, 当然如果不使用抽象类也能完成以上工作,可是维护起来就不一样了。如果建立类的时候忘记文件大小这个属性了。要是使用抽象类,你只要向文件抽象类中加入文件大小属性就可以了。不用抽象类,你就要每一个类都更改一遍。可维护性差异,显而易见。 我是这样猜的。头,负责程序的整体(抽象类的操作)。兵,负责程序的部分(具体类的操作)。在头的代码中,大部分是对abstract类进行操作,利用多态的特性,程序会按设计的方向运行。只要逻辑功能没问题,要改的就是具体类的代码,那就不是头的事了。在兵的代码中,就是对具体类功能的实现了,做完后,交给头,有问题头会让其修改的。=========================================所以,估计楼主现在是兵这一级了,和抽象类打交道少,等你升级为头时,就知道抽象类的妙用了。我也没有实际开发经验,不知道在现实中是不是这样的情况。 C#XmlSerializer的问题,如果我想序列化/反序列化一个dll里的某个类,内详。 NotImplementedException 异常 有关C#中的网页刷新问题 WebBrowser DocumentText? 源文件? GridView的任务面板在哪打开 从剪贴板中读出XmlElement对象的问题 求助:XML插入元素出现 xmlns=""的问题 vs.net设置中的问题。。问题清楚、是个好题目 C#做手机开发,请问C#做手机开发需要学习那些东东 C#与VB.net共同开发一个网站,是不是特麻烦? 怎样根据一个名字(string),取得一个控件的控制权? 如何重写菜单?
再说一个比较常见的例子吧。这次要做一个文件管理器。目的是对自己的文档进行管理。展现方面可以显示文件的最后修改时间,可以显示文件的大小。文件的路径。
功能方面可以打开Word,Excel,Txt,mp3... ...等等格式的文件。其中点mp3后要能播放,点Word能用Word打开,点击Txt可以直接编辑,,依次类推。(不考虑一种文件可以被多种工具软件打开的情况)首先要建立一个文件的抽象类。这个类包括文件路径,文件修改时间,还有一个抽象的打开过程等等通用的东西,只要是文件就一定会有的属性或方法。
然后在这个抽象类基础上派生出Word类,Excel类,Txt类,mp3类
在Word类中的打开事件中调用Word,
在Excel类中的打开事件中调用Excel,
在Txt类中的打开事件中调用程序本身的编辑器,
在mp3类中的打开事件中调用程序本身的播放器,
当然如果不使用抽象类也能完成以上工作,可是维护起来就不一样了。如果建立类的时候忘记文件大小这个属性了。要是使用抽象类,你只要向文件抽象类中加入文件大小属性就可以了。不用抽象类,你就要每一个类都更改一遍。可维护性差异,显而易见。
=========================================所以,估计楼主现在是兵这一级了,和抽象类打交道少,等你升级为头时,就知道抽象类的妙用了。我也没有实际开发经验,不知道在现实中是不是这样的情况。