Java abstract class 与 interface对比

 更新时间:2016年12月30日 17:15:49   投稿:lqh  
这篇文章主要介绍了 Java abstract class 与 interface对比的相关资料,需要的朋友可以参考下

Java abstract class 与 interface对比

前言

abstract class和interface都是Java用来描述抽象体的,不知道是否有同学跟我一样对这两者的语法层面的区别以及如何选择这两者还存在着疑惑,反正接下来,让我详细介绍一下abstract class和interface。

理解抽象类

在面向对象的概念中,所有的对象都是通过类来描述的。但是反过来却不是这样,并不是所有的类都是用来描述对象的。因为这个类中可能没有足够的信息来描述一个具体的对象,这样的类就是抽象类(ps:注意这里的抽象类不是单指abstract class)。抽象类往往用来描述我们对问题领域进行分析和设计后得出来的抽象概念,是对一系列看上去不同,但是本质相同的具体概念的抽象。

abstract class 和 interface语法区别

抽象类和接口的区别如下:

  1. 抽象类可以有普通的成员变量,而接口中一般没有成员变量。如果非要在接口中安插成员变量,则成员变量的类型必须为static final类型。
  2. 抽象类中可以包含非抽象的普通方法,而接口中的所有方法都必须是抽象的。
  3. 抽象类中的抽象方法的访问类型可以是public、protected或者包访问类型。而接口中的抽象方法只能是public abstract类型,接口的方法前面可以不加修饰符,默认就是public abstract类型。
  4. 一个类可以实现多个接口(多继承的折衷实现),但是只能继承一个抽象类。

abstract class和interface的使用区别

abstract class的设计体现了”is-a”的关系,而interface体现的是”has-a”的关系。

什么时候使用接口?

你想扩展我给你的东西,就必须实现必需的接口。例如,实现Comparable接口的对象可以直接使用sort方法Collections.sort(List list)排序。

什么时候使用抽象类?

如果你有一个抽象类,它提供了很多通用的功能,并且抽象出了每个子类需要自己去实现的方法。而你设计的东西恰好基于这个类,那这个实现你就可以去继承这个抽象类,然后实现自己独特的方法。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Java框架入门之简单介绍SpringBoot框架

    Java框架入门之简单介绍SpringBoot框架

    今天给大家带来的是关于Java的相关知识,文章围绕着SpringBoot框架展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 关于IDEA配置文件字符集的问题

    关于IDEA配置文件字符集的问题

    这篇文章主要介绍了关于IDEA配置文件字符集的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Java中泛型的用法总结

    Java中泛型的用法总结

    这篇文章主要介绍了Java中泛型的用法,实例总结了java中泛型的常见使用技巧,需要的朋友可以参考下
    2015-06-06
  • JAVA大作业之图书管理系统实现全解

    JAVA大作业之图书管理系统实现全解

    随着网络技术的高速发展,计算机应用的普及,利用计算机对图书馆的日常工作进行管理势在必行,本篇文章手把手带你用Java实现一个图书管理系统,大家可以在过程中查缺补漏,提升水平
    2022-01-01
  • SpringMVC全局异常处理小结

    SpringMVC全局异常处理小结

    在开发中,不管是dao层、service层还是controller层,都有可能抛出异常,在springmvc中,能将所有类型的异常处理从各处理过程解耦出来,既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护,本文介绍SpringMVC全局异常处理,感兴趣的朋友一起看看吧
    2024-03-03
  • java学习笔记之eclipse+tomcat 配置

    java学习笔记之eclipse+tomcat 配置

    俗话说:工欲善其事必先利其器,既然要学习java,首先把java的开发环境捣鼓一下吧,这里我们来谈谈eclipse+tomcat的配置方法。
    2014-11-11
  • idea创建SpringBoot项目及注解配置相关应用小结

    idea创建SpringBoot项目及注解配置相关应用小结

    Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,Spring Boot框架,其功能非常简单,便是帮助我们实现自动配置,本文给大家介绍idea创建SpringBoot项目及注解配置相关应用,感兴趣的朋友跟随小编一起看看吧
    2023-11-11
  • java正则匹配HTML中a标签里的中文字符示例

    java正则匹配HTML中a标签里的中文字符示例

    这篇文章主要介绍了java正则匹配HTML中a标签里的中文字符,涉及java中文正则及HTML元素操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • SpringBoot 实现流控的操作方法

    SpringBoot 实现流控的操作方法

    本文介绍了限流算法的基本概念和常见的限流算法,包括计数器算法、漏桶算法和令牌桶算法,还介绍了如何在Spring Boot中使用Guava库和自定义注解以及AOP实现接口限流功能,感兴趣的朋友一起看看吧
    2024-12-12
  • Spring Boot项目搭建的两种方式

    Spring Boot项目搭建的两种方式

    springboot简单快捷方便的优点深受用户喜爱,springboot开发环境搭建过程是每个开发者必须要做的工作,今天小编写的一篇教程关于Spring Boot项目搭建方法,通过两种方式给大家介绍的非常详细,需要的朋友参考下吧
    2021-06-06

最新评论