相同点:

  • 两者均有抽象方法(有继承/实现它的类具体实现)

  • 均可以引用具体子类/实现类

  • 两者都不能直接实例化

    就是不能直接new一个抽象类/接口,因为没有实际意义啦

不同点:

  • 抽象类用abstract修饰,接口用interface修饰

  • 抽象类是对物体整体本质的抽象;接口是对物体某个行为动作的抽象

    抽象类的继承有属于的关系:比如猫属于动物,猫继承动物类;接口类的实现有具有的关系:比如猫会跑,猫类实现跑的接口

  • 抽象类可以有域变量;接口没有域变量,只允许有静态常量

    倘若接口有域变量,该接口会被很多类实现,为保证数据的安全性,可定要将数据设置成final,所有实现类共享一个final常量,那将变量设置成static,那么无论被多少个类实现,都不用再重复为这个常量开辟新的空间了(个人的理解)

  • 抽象类中可以有具体的方法;接口中必须全部是抽象方法

    比如抽象类中可以有构造方法(具体的),虽然自身不能new,但是可由子类来调用构造函数啊,接口没有域变量,也就不需要构造

  • 一个类只能继承一个抽象类;一个类可以继承多个接口

    Java不支持类的多继承,猫猫只属于动物,不能属于植物,但是支持多接口继承,猫猫会粘人,猫猫还会调皮,猫猫还会拉臭臭

  • 抽象类的拓展性较弱;接口的拓展性较强

    比如在已发布的程序中,你希望在一个方法中新增相应的功能,如果在抽象类中新增方法,那么所有继承它的子类都会受到影响,如果你要为了新增方法重新增加子类,那么会破坏原有的继承关系;但如果你通过接口的继承,将变化体现在接口的子类中,再通过继承子接口,原先的接口保持不变,可以实现稳定的拓展

抽象类和接口的异同(分点)相关推荐

  1. abstract类_走进C# abstract,了解抽象类与接口的异同

    思维导航: 前言 abstract修饰符 抽象类与接口的异同 抽象类和接口的使用 总结 参考资料 文章正文: ?回到顶部 前言: 最近在研究.NET Core的一些类库源码的时候发现在底层类库中使用了 ...

  2. C# 抽象类与接口异同

    转自:https://mp.weixin.qq.com/s?src=11&timestamp=1618912505&ver=3020&signature=YPxVz675i0I ...

  3. 抽象类和接口类的区别

    2019独角兽企业重金招聘Python工程师标准>>> 一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类 ...

  4. [和管子对话] 2 2007-4-6/抽象类和接口的谁是谁非

    发布日期:2007.4.6 作者:Anytao ©2007 Anytao.com 转贴请注明出处,留此信息. 本文将介绍以下内容: • .NET的基础和技巧探讨 • 胡言乱语话技术 王论: 今日话题: ...

  5. Java 面向对象 抽象类与接口

    在类的继承中,如果一个个新的子类被定义,子类变得越来越具体,父类变得更加一般和通用,类的设计应该保证父子类能够共享特征,有时将父类设计得非常抽象,使得父类没有具体的实现,这样的类叫做抽象类:一般当我们 ...

  6. 抽象类与接口有什么异同?

    抽象类与接口有什么异同? 什么是抽象类呢? 如果一个类中包含了抽象方法,那么这个类就是抽象类.可通过类或者方法中是否有abstract来判断,(abstain只能修饰类或者方法,不能修饰属性). 那什 ...

  7. 抽象类和接口的特点和异同

    抽象类 关键字:abstract:抽象 可以修饰类:叫做抽象类 可以修饰方法:叫做抽象方法,没有方法体,需要使用分号表示声明结束,抽象方法所在的类必须是抽象类 子类必须重写父类的抽象方法,除非子类也是 ...

  8. 类、抽象类、接口之间的区别

    目录 1.类与抽象类的异同之处 (1)类和抽象类的区别 (2)类和抽象类的相同之处 2.接口与类的异同之处 (1)接口与类相似点 (2)接口与类的区别 (3)接口特性 3.抽象类和接口的区别 1.类与 ...

  9. jdk8 接口抽象类区别_JDK 8时代的抽象类与接口

    jdk8 接口抽象类区别 在新的Java 8日期和时间API:Stephen Colebourne的访谈中 , Stephen Colebourne告诉Hartmut Schlosser :" ...

最新文章

  1. leetcode算法题--两个字符串的最小ASCII删除和★
  2. 小波的秘密9_图像处理应用:图像增强
  3. freebsd镜像作用和vmware服务开启
  4. 背包九讲 ----- 01背包问题模版
  5. mnist tensorrt 运行_TensorRT学习
  6. onContextItemSelected 与 onMenuItemSelected 的那些事
  7. 95. php 与 xml
  8. NoSQL数据库原理与应用
  9. PHP中smart原则,什么是smart原则(smart原则适用于哪些内容)
  10. VBA 工作簿和工作表的简单操作
  11. 基于javaweb酒店信息管理系统、基于ssm/springboot的酒店预定系统
  12. Android Adb 连接海马玩模拟器
  13. 在Chrome中使用非应用商店安装的扩展程序
  14. 【Arduino】Arduino UNO入门
  15. dboxShare企业网盘系统开源源码
  16. 好看的皮囊千篇一律,有趣的Linux命令这里有几打!!!
  17. 5款可以教你编程的游戏
  18. 计算机录制语音所必需的硬件,录音电脑配置方面的硬件要求
  19. hadoop 透明加密先关命令
  20. node.js+Vue计算机毕设项目勤工俭学管理小程序(程序+LW+部署)

热门文章

  1. java webservice开发和调用(jdk1.5+eclipse3.4 + tomcat5.5+axis1.4+xfire1.2.6)
  2. 好的提问和寻找答案的网站(会时常更新)
  3. 搭建Janus的HTTPS环境
  4. 【叔小生】JavaScript进阶篇
  5. 关于CStdioFile
  6. 使用CStdioFile操作文件和filetxt.cpp报错和filecore.cpp报错
  7. 学习四旋翼(三):DMP姿态解算和串级PID控制姿态
  8. Ubuntu基本使用指南
  9. 红米联通版刷机包 MIUIV6 扁平化 精简 稳定 流畅 省电 长用版
  10. maven项目查看依赖树