同上!!!
谢谢!!!

解决方案 »

  1.   

    嘻嘻,也许上面那个例子说的不清楚。
    再说一个比较常见的例子吧。这次要做一个文件管理器。目的是对自己的文档进行管理。展现方面可以显示文件的最后修改时间,可以显示文件的大小。文件的路径。
    功能方面可以打开Word,Excel,Txt,mp3... ...等等格式的文件。其中点mp3后要能播放,点Word能用Word打开,点击Txt可以直接编辑,,依次类推。(不考虑一种文件可以被多种工具软件打开的情况)首先要建立一个文件的抽象类。这个类包括文件路径,文件修改时间,还有一个抽象的打开过程等等通用的东西,只要是文件就一定会有的属性或方法。
    然后在这个抽象类基础上派生出Word类,Excel类,Txt类,mp3类 
    在Word类中的打开事件中调用Word,
    在Excel类中的打开事件中调用Excel,
    在Txt类中的打开事件中调用程序本身的编辑器,
    在mp3类中的打开事件中调用程序本身的播放器,
     当然如果不使用抽象类也能完成以上工作,可是维护起来就不一样了。如果建立类的时候忘记文件大小这个属性了。要是使用抽象类,你只要向文件抽象类中加入文件大小属性就可以了。不用抽象类,你就要每一个类都更改一遍。可维护性差异,显而易见。
      

  2.   

    我是这样猜的。头,负责程序的整体(抽象类的操作)。兵,负责程序的部分(具体类的操作)。在头的代码中,大部分是对abstract类进行操作,利用多态的特性,程序会按设计的方向运行。只要逻辑功能没问题,要改的就是具体类的代码,那就不是头的事了。在兵的代码中,就是对具体类功能的实现了,做完后,交给头,有问题头会让其修改的。
    =========================================所以,估计楼主现在是兵这一级了,和抽象类打交道少,等你升级为头时,就知道抽象类的妙用了。我也没有实际开发经验,不知道在现实中是不是这样的情况。