抽象类与接口分别在什么情况下用比较合适呢?我们设计程序的时候,用的最多的往往是接口,也提倡基于接口的编程;而抽象类却不常用,既然有抽象类,那么就一定有它的用处。比较懂的大虾解释一下!回答满意,立即结贴!

解决方案 »

  1.   

    抽象类经常做一个流程里面一些共同的事情,
    把不能确定或者需要另外实现的方法再定义成抽象方法。比如一个加密算法,需要先对文字进行base64解码,然后再加密,
    那么base64解码就可以写成不抽象的进行实际工作的方法,
    而加密因为算法不同,可以定义成抽象方法,
    让它的子类实现这个加密类的时候再进行实际的加密。其次,抽象类也作为一个程序辅助工具类,
    比如
    MouseAdepter和MouseListener的关系
    good luck
      

  2.   

    我跟你说一下我一般的做法吧  抽象类的应用  分页时写一个抽象类 里面实现有一些通用的分页方法  所以的dao层 都继承我这个抽象类
    一般重用比较多的都在service层  接口的应用
      

  3.   

    抽象类只是部分实现一个类,再由用户按需求对其进行不同的扩展和完善;
    接口只是定义一个/组行为的规范或约定。抽象类对其所有子类提供通用的已实现功能;接口则是定义大范围内相互各异的对象间可共用的功能。抽象类主要用于关系密切的类,是对那些关系密切的类的抽象,多表示概念(比如从汽车,轿车、轮船、飞机等可以抽象出一个交通工具类,交通工具只是概念,现实中并不存在一个叫交通工具的实体,它只能是具体的轿车或飞机等;再比如说水果类,它也表示一种概念,具体到现实中,只能是苹果、梨、香蕉、桔子等中的一种,所以水果类也只能抽象类)而接口适合为不相关的类提供通用功能。抽象类主要用于设计大的功能单元;而接口主要用于设计小而简练的功能块。例如:
    Window窗体可以用抽象类来设计,可以把公有操作和属性放到一个抽象类里,让窗体和对话框继承自这个抽象类,再根据自己的需求进行扩展和完善。另外,打印操作可以作为一个接口提供给每个需要此功能的窗体,因为窗体的内容不同,就要根据他们自己的要求去实现自己的打印功能。打印时只通过接口来调用,而不用在乎是那个窗体要打印。以上为拙见,请各位继续
      

  4.   


      因为我自己曾经也有过类型的问题。 这种非常概念性的东西。 当你不明白的时候。 你觉得很迷茫。 当你懂的时候,又会觉得非常简单。 学oop 我非常推荐上 www.jdon.com.