面试抽象类和接口的区别

相同点:

1、都是抽象的,不能被实例化

2、当一个非抽象类实现接口或者抽象类的时候,必须将接口和抽象类中所有的抽象方法全部实现

不同点:

1、接口(行为)是完全抽象的,接口侧重于封装,抽象侧重于提取共性,进行约束

抽象类是半抽象的,提取共性 ,提取共同点

2、实现接口的关键字为 implements,继承抽象类的关键字为 extends,接口和接口支持多继承,类和类之间支持单继承,一个类也可以实现多个接口,但一个类只能继承一个抽象类

3、接口只有定义,不能有方法的实现,而抽象类可以有定义与实现,即其方法可以在抽象类中被实现。

4、抽象类有构造方法,接口没有构造方法

5、接口是完全抽象的,所以接口中随便写一个变量就是常量(public static final),随便定义一个方法都是抽象方法public abstract(只是省去了前面的修饰符)

而抽象类可以有自己的数据成员变量,也可以有非抽象的成员方法、可以被定义为pirvate,protected和public,抽象类中的抽象方法·(其前有abstract修饰)不能用private,static,synchronized和native等访问修饰符修饰,同时方法必须以分号结尾,并且不带花括号{}。所以,当功能需要累积时,使用抽象类;不需要累积时,使用接口。

6、接口被运用于实现比较常用的功能,便于日后维护或者添加删除方法,而抽象类更倾向于充当公共类的角色,不适用于日后重新对里面的代码进行修改。

7、接口可以使用多态--面向接口编程

8、接口有没有默认方法?有!可以为接口方法提供一个默认实现。 必须用 default 修饰符标记这样一个方法。当然, 这并没有太大用处, 因为Comparable接口 的每一个实际实现都要覆盖这个方法。

接口方法的冲突

1、 一个类实现两个接口,两个接口的方法都一样可以吗?可以!

  但是如果两个方法的名称一样,但是两个方法的参数不一样可以吗? 可以,就是方法的重载,再重载一个带参数方法就行了
​但是如果两个方法的名称一样,但是两个方法的返回值类型不一样可以吗? 不可以!

2、如果先在一个接口中将一个方法定义为默认方法, 然后又在超类中定义了同样的方法, 会发生什么情况?

超类优先。如果超类提供了一个具体方法,同名而且有相同参数类型的默认方法会被忽略。

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

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

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

  2. 抽象类和接口的异同(分点)

    相同点: 两者均有抽象方法(有继承/实现它的类具体实现) 均可以引用具体子类/实现类 两者都不能直接实例化 就是不能直接new一个抽象类/接口,因为没有实际意义啦 不同点: 抽象类用abstract修 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. configure: error: no acceptable C compiler found in $PATH
  2. sqoop 增量导入,不重复
  3. 模拟业务最小测试用例01
  4. 小赋诗歌一首,以感学生时代结束
  5. OpenCV学习笔记(一)——OpenCV3.1.0+VS2015开发环境配置
  6. 《Linux内核设计与实现》读书笔记(十)- 内核同步方法
  7. MAP/REDUCE:Google和Nutch实现异同及其他
  8. Leetcode 5. 最长回文子串(Longest Palindromic Substring)
  9. java中的过滤器与监听器
  10. Java 开发者靠什么逆风翻盘?
  11. 谷歌宣布开源 Live Transcribe 语音识别转文字工具
  12. 7.Shell 编程从入门到精通 --- 流编辑
  13. 设置win10保护色
  14. web前端开发技术期末考试_(完整word版)web前端开发技术试卷三
  15. VB扫雷游戏的设计与开发
  16. Activiti 7+Maven+Idea
  17. 已知标准差用计算机求标准误,【摘自网络】关于标准差、标准误、相对标准差的计算...
  18. amazeui PHP,amazeui页面分析之登录页面
  19. Python 实现文本共现网络分析
  20. 加拿大一枝大黄花的最新消息,吃掉它。

热门文章

  1. c语言快速排序(quick_sort)整个排序过程可以递归进行
  2. 如何查看微信image/*.dat文件
  3. 易捷行云EasyStack 云平台携手飞腾S2500推动国产化云生态建设
  4. 阿里巴巴集团2015年秋季校招在线笔试附加题分析
  5. Nginx负载均衡配置
  6. 免费版xshell下载地址
  7. python立方尾不变
  8. 【渝粤题库】陕西师范大学180108 有效教学的理论与实践
  9. 这才是索罗斯暴富的真实秘密
  10. ffmpeg 字幕格式转换,webvtt字幕格式,srt字幕格式