`

你是怎样看待java中的interface和abstract class的?

    博客分类:
  • j2se
阅读更多
在java中,interface和abstract class都是为了“面向接口编程而不是面向实现编程”而设计的,但是在java中他们的关系和各自的优缺点是什么呢?
1.如你所知,在java中只支持单extends,但是可以implements多个interface,所以如果你的类
extends了一个abstract类,就是去了extends其他抽象类的机会了。

 

2.interface是用来表示行为的,如Clonable,Runnable,Serializable等,如果你用abstract 
class表示行为,那你的类就不肯能同时具有Clonable和Runnable的行为了,因为java语言只支持单
继承。

 

3.如果对性能有很苛刻的需求,一般抽象类略快于接口。

 

4.如果有某个具体的行为在其子类里都需要实现,且其实现方式是一样的,那么一般使用抽象类的方式,
比如模板设计模式就是这样一个很好的例子,在抽象类里定义了算法的骨架,算法里需要的每个方法有不
同的子类实现。一般接口和抽象类可以组合使用,一般接口的默认实现都是抽象类,这样的运用在
spring框架里有很多运用。

 

5.接口里的变量只能是public final或public static或public final static(这是接口里默
认的变量修饰符),其方法都是抽象方法,而抽象类没有这个限制。

 

6.其他欢迎补充

 

 

分享到:
评论

相关推荐

    深入理解abstract class和interface

    abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性...

    java abstract class interface之间的区别介绍

    java abstract class interface之间的区别介绍 java abstract class interface之间的区别介绍

    java中abstractclass和Interface.doc

    java中abstractclass和Interface.doc

    Java中interface接口与abstractclas

    Java中interface接口与abstractclass抽象类的区别共2页.pdf.zip

    Java中抽象类和接口的区别与作用详解

    结论:abstract class和Interface是JAVA语言中的两种定义抽象类的方式。Interface将abstract的概念作了更进一步的发挥。你可以想像Interface是“纯粹”的 abstract class,只可以包含抽象方法,也包括一些常量的定义...

    Java abstract class 与 interface对比

    主要介绍了 Java abstract class 与 interface对比的相关资料,需要的朋友可以参考下

    Java程序开发中abstract 和 interface的区别详解

    abstract class和interface在Java语言中都是用来进行抽象类。但是两者有什么区别呢,接下来小编给大家带来了abstract 和 interface的区别详解,感兴趣的朋友一起学习吧

    Java中抽象类和接口的区别

    在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...

    详细解析Java中抽象类和接口的区别

    抽象类和接口的区别 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持...

    JAVA中抽象类和接口的区别

    在Java语言中,abstract class 和interface 是支持抽象类定义的两种机制区别

    Java中抽象类和接口的区别.zip_java interf

    在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...

    JAVA中抽象类与接口的区别

    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性...

    java面试宝典

    29、abstract class 和interface 有什么区别? 10 30、Static Nested Class 和Inner Class 的不同? 11 31、java 中会存在内存泄漏吗,请简单描述。 11 32、abstract 的method 是否可同时是static,是否可同时是native...

    Java面试宝典2017.zip

    24、abstract class和interface有什么区别? 17 25、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 18 26、什么是内部类?Static Nested Class 和 Inner Class的不同。 19 27、...

    《java面向对象程序设计-继承和多态》教案.doc

    第四章 面向对象的概念和 Java 实现-2 回顾 类是具有相同属性和行为的一组对象的 集合 , 对象是类的实例 封装是隐藏对象实现细节的过程,以便不让用户看到实现的细节 类可用Class 来定义,类的变量和方法可被该类的...

    Java面试宝典

    24、abstract class和interface有什么区别? 17 25、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 18 26、什么是内部类?Static Nested Class 和 Inner Class的不同。 19 27、...

Global site tag (gtag.js) - Google Analytics