http://www.51testing.com/html/82/n-819282-3.html

来源:互联网 发布:网络歪歌公社最新歌曲 编辑:程序博客网 时间:2024/05/01 12:40

接口与抽象类各自的优缺:

  接口缺点:如果向一个java接口加入一个新的方法时,所有实现这个接口的类都得编写具体的实现。

  接口优点:一个类可以实现多个接口,接口可以让这个类不仅具有主类型的行为,而且具有其他的次要行为,比如 HashMap主要类型是Map,而Cloneable接口使它具有一个次要类型,这个类型说明它可以安全的克隆.

  抽象类的缺点:一个类只能由一个超类继承,所以抽象类作为类型定义工具的效能大打折扣。

  抽象类的优点:具体类可从抽象类自动得到这些方法的缺省实现。

  抽象类与接口的区别:

  1、抽象类可以包含部分方法的实现,这是抽象类优于接口的一个主要地方。

  2、由于Java的单继承,每个类只能从一个抽象类继承,但是每个类可以实现多个接口,使用接口还可以实现Mixin混合类型的类。接口可以继承多个接口,即接口间可以多重继承。

  3、将类抽取出通用部分作为接口容易,要作为抽象类则不太方便,因为这个类有可能已经继承自另一个类。

        4、可以将接口和抽象类一起使用。在集合框架体系中,顶层接口Collection定义了一些方法,同时又提供了几个抽象类 AbstractCollection、AbstractList、AbstractMap实现了一些方法,这样具体的集合实现类可以选择从抽象类中继承或直接实现接口。

0 0