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

作者:tb520ff 时间:2021-09-12 03:21:39 

详解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.设计意图,一个是一种抽象,一个是实现我能干什么的功能。

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

来源:http://blog.csdn.net/yijiu0711/article/details/37313547

标签:java,接口,抽象类
0
投稿

猜你喜欢

  • Java8中Optional类的使用说明

    2023-07-25 13:31:32
  • Java调用接口如何获取json数据解析后保存到数据库

    2023-11-16 15:01:36
  • Struts2返回json格式数据代码实例

    2023-10-12 13:15:32
  • java实现简单的英文文本单词翻译器功能示例

    2023-11-28 10:22:15
  • Jenkins初级应用之Invoke Phing targets插件配置

    2023-10-14 03:55:56
  • 详解Spring Boot最核心的27个注解,你了解多少?

    2023-11-20 06:23:35
  • Java线程池 ThreadPoolExecutor 详解

    2021-05-24 10:35:42
  • Java中防止数据重复提交超简单的6种方法

    2022-03-18 11:03:22
  • 一个JAVA小项目--Web应用自动生成Word

    2022-04-30 07:19:56
  • Android中bindService基本使用方法概述

    2023-08-05 19:18:56
  • openFeign服务之间调用保持请求头信息处理方式

    2022-11-07 23:45:21
  • Java实现微信红包分配规则

    2021-06-16 09:18:07
  • JAVA如何定义构造函数过程解析

    2023-11-04 08:15:09
  • C#实现温度转换功能

    2021-10-06 22:54:18
  • Java序列化JSON丢失精度问题的解决方法(修复Long类型太长)

    2022-10-15 00:01:34
  • 国内分布式框架Dubbo使用详解

    2022-05-10 13:38:27
  • Java 多线程等待优雅的实现方式之Phaser同步屏障

    2023-11-29 09:47:43
  • java获取系统路径字体、得到某个目录下的所有文件名、获取当前路径

    2023-11-29 14:39:23
  • web.xml SpringBoot打包可执行Jar运行SpringMVC加载流程

    2023-11-24 07:40:52
  • 深入解析JVM之内存结构及字符串常量池(推荐)

    2023-01-02 19:48:20
  • asp之家 软件编程 m.aspxhome.com