最近团队在招人:阿里新零售事业群CBU技术部招Java高级&专家,团队主要负责B2B工业品牌业务,坐标杭州滨江,有兴趣的小伙伴私戳我。

********************************************

以下是原文:

本身的设计目的就是不同的。

大家讲的都很详细了,我说说我自己的一点浅薄的理解。

我一直认为,工科的知识有个很明显的特点:“以用为本”。在讨论接口和抽象类的区别时,我也想从“用”的角度试着总结一下区别,所以我想到了设计目的。

接口的设计目的,是对类的行为进行约束(更准确的说是一种“有”约束,因为接口不能规定类不可以有什么行为),也就是提供一种机制,可以强制要求不同的类具有相同的行为。它只约束了行为的有无,但不对如何实现行为进行限制。对“接口为何是约束”的理解,我觉得配合泛型食用效果更佳。

而抽象类的设计目的,是代码复用。当不同的类具有某些相同的行为(记为行为集合A),且其中一部分行为的实现方式一致时(A的非真子集,记为B),可以让这些类都派生于一个抽象类。在这个抽象类中实现了B,避免让所有的子类来实现B,这就达到了代码复用的目的。而A减B的部分,留给各个子类自己实现。正是因为A-B在这里没有实现,所以抽象类不允许实例化出来(否则当调用到A-B时,无法执行)。

第一次回答这类问题,有错误之处望大家海涵并不吝指正

python接口和抽象类的区别_接口和抽象类有什么区别?相关推荐

  1. comparable接口和comparator接口的作用和区别?_接口和抽象类有什么联系和区别?

    春风如贵客,一到便繁华.各位看官点赞再看,养成好习惯(●´∀`●)之后还会推出JAVA面试系列文章,敬请关注!按照技术模块:Java热点技术.多线程.微服务.JVM.Redis.消息队列.SQL相关的 ...

  2. c语言中接口和函数的区别,接口与类的关系_接口函数和调用函数有什么区别

    描述 接口与类的关系 类与接口是两个概念,不能混淆. 接口概念 程序接口是操作系统为用户提供的两类接口之一,编程人员在程序中通过程序接口来请求操作系统提供服务.面向过程语言最基本的单元是过程和函数. ...

  3. 接口中的静态方法作用_接口一定要实现,才能为自己所用

    好多天没更新了,接下来几天会更新多点. 最近学习的难度越来越大,自己的时间越来越少了,所以这段时间发的文章都比较少. 废话不说了,现在开始说正事,今天说的是接口,所谓的接口,是Java语言中一种引用类 ...

  4. java接口文档生成工具_接口文档生成

    一.为什么要写接口文档? 1.正规的团队合作或者是项目对接,接口文档是非常重要的,一般接口文档都是通过开发人员写的.一个工整的文档显得是非重要. 2.项目开发过程中前后端工程师有一个统一的文件进行沟通 ...

  5. iVMS-4200 Vs区别_高中和大学的这些区别虽鲜为人知,却字字有据,句句真实

    学有方法,考有技巧,优学优考策略致力于学与考的最优结合,助力学子考入理想大学! 终于到了上大学的年纪,身边的小伙伴都走上了各奔前程的路,你也不例外吧,在一个人的路上越走越远.或许这个时候的你才慢慢的懂 ...

  6. Java接口能不能有静态方法_接口可以在Java中使用静态方法吗?

    Java中的接口(interface)类似于类,但是它仅包含final和static的抽象方法和字段. 静态方法是使用静态关键字声明,它将与类一起被加载到存储器.您可以使用类名访问静态方法而无需实例化 ...

  7. python和noip的区别_【noi与noip的区别】

    什么是NOI NOI:全国青少年信息学奥林匹克(NOI)是国内包括港澳在内的省级代表队高水平的大赛,自1984年至今,在国内包括香港.澳门组织竞赛活动.每年经各省选拔产生5名选手(其中一名是女选手), ...

  8. python与金融工程的区别_统计学和金融工程的区别

    Stats (统计学) vs MFE (金融工程)专业解析 统计学(硕士)侧重方面:统计学相关知识技能 数学的功底 统计学核心课程:随机过程,数理统计,概率论,回归分析,非参数检验,时间序列分析,多元 ...

  9. python列表和链表的区别_顺序表和链表的区别

    一.从操作上角度 顺序表和链表都具有增.删.查.改的相同功能,但算法复杂度却不相同. (1)增:顺序表往指定位置,不覆盖的添加一个值,后面的值日要往后移动,算法复杂度为O(n):链表往指定位置添加一个 ...

最新文章

  1. codility上的问题 (22)
  2. pom.xml 引入 net.sf.json-lib 报错
  3. POJ2296二分2sat
  4. Delphi中比较两个对象是否一致及地址是否相同
  5. 专注于网络安全的数据中心在莫斯科开通运营
  6. 云栖大会 | 开源引力峰会线下参会指南
  7. 就业阶段-java语言进价_day03
  8. Android-构建不同环境的Apk
  9. 华为模拟器ensp与真实机器连接使用的配置内容一
  10. 如何把html转为excel,怎么把网页转化为excel
  11. windows10 卓越性能模式
  12. 阿里云DataV—多字段取满足某一个字段的行,多字段取不满足某一个字段的行(3)
  13. 《精进:如何成为一个很厉害的人》读后感
  14. 带掩码的自编码器MAE在各领域中的应用总结
  15. PIC16F887 单片机 灯光控制系统 PROTEUS 基于单片机的灯光控制系统
  16. Python实现对中文文本分句
  17. 3个套路带你玩转Excel动态图表
  18. 关于海思3559A板子(润和出厂)启动的阶段性总结
  19. OpenCv-C++-小案例实战-切边(二)
  20. Windows bat 循环脚本案例

热门文章

  1. position:fixed 兼容浏览器低版本
  2. 用递归方式判断字符串是否是回文
  3. yaml,json,ini这三种格式用来做配置文件优缺点
  4. hihocoder-Week173--A Game
  5. bzoj2144: 跳跳棋(二分/倍增)
  6. 算法:老鼠走迷宫问题
  7. 公有云与私有云的差别(转)
  8. 修改mysql编码方式centos_CentOS下修改mysql数据库编码为UTF-8(附mysql开启远程链接和开放3306端口)...
  9. linux电脑做笔记软件,知识管理工具, 自由格式数据库, 笔记软件以及个人信息管理...
  10. php中trim的用法和例子,PHP ltrim()用法及代码示例