详解java中接口与抽象类的区别

 更新时间:2017年10月30日 10:50:51   作者:tb520ff  
这篇文章主要介绍了详解java中接口与抽象类的区别的相关资料,希望通过本文能帮助到大家,让大家轻松理解掌握接口与抽象类的区别,需要的朋友可以参考下

详解java中接口与抽象类的区别

  1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。

  2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。

  3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。

  4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。

  5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。

  6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。

  7.接口中的方法默认都是 public,abstract 类型的。

  结论

  abstract class 和 interface 是 Java语言中的两种定义抽象类的方式,它们之间有很大的相似性。但是对于它们的选择却又往往反映出对于问题领域中的概 念本质的理解、对于设计意图的反映是否正确、合理,因为它们表现了概念间的不同的关系(虽然都能够实现需求的功能)。这其实也是语言的一种的惯用法,希望读者朋友能够细细体会。

主要不同点:

1.单继承与多继承

2.抽象类可以有自己的实现方法,有非抽象方法,数据变量可以不是public的,接口的方法都是public的,没有自己的实利域,不能自己实现方法,方法都是抽象的,只能有静态数据。

3.设计意图,一个是一种抽象,一个是实现我能干什么的功能。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Java编程中的equals方法使用全解

    Java编程中的equals方法使用全解

    这篇文章主要介绍了Java编程中的equals方法使用全解,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • 全面了解java异常

    全面了解java异常

    本文非常详细的介绍了java异常,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们可以学习一下这篇文章
    2021-08-08
  • java获取类名的方法详解

    java获取类名的方法详解

    这篇文章主要介绍了java获取类名的问题详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • java数据结构实现机器人行走

    java数据结构实现机器人行走

    这篇文章主要为大家详细介绍了java数据结构实现机器人行走,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 轻松理解Java面试和开发中的IoC(控制反转)

    轻松理解Java面试和开发中的IoC(控制反转)

    在Java开发中,IoC意 味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。下文给大家介绍Java面试和开发中的IoC(控制反转)知识,需要的朋友参考下吧
    2017-07-07
  • Spring实现文件上传功能

    Spring实现文件上传功能

    本篇文章主要介绍了Spring实现文件上传功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 一文详解Redisson分布式锁底层实现原理

    一文详解Redisson分布式锁底层实现原理

    这篇文章主要详细介绍了Redisson分布式锁底层实现原理,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • JVM钩子函数的使用场景详解

    JVM钩子函数的使用场景详解

    当jvm进程退出的时候,或者受到了系统的中断信号,hook线程就会启动,一个线程可以注入多个钩,下面这篇文章主要给大家介绍了关于JVM钩子函数使用的相关资料,需要的朋友可以参考下
    2021-08-08
  • Spring Bean的生命周期详细介绍

    Spring Bean的生命周期详细介绍

    这篇文章主要介绍了Spring Bean的生命周期的相关资料,需要的朋友可以参考下
    2016-09-09
  • java中设计模式(多例)的实例详解

    java中设计模式(多例)的实例详解

    这篇文章主要介绍了java中设计模式(多例)的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09

最新评论