抽象类和接口的异同点
面试抽象类和接口的区别
相同点:
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、如果先在一个接口中将一个方法定义为默认方法, 然后又在超类中定义了同样的方法, 会发生什么情况?
超类优先。如果超类提供了一个具体方法,同名而且有相同参数类型的默认方法会被忽略。
抽象类和接口的异同点相关推荐
- abstract类_走进C# abstract,了解抽象类与接口的异同
思维导航: 前言 abstract修饰符 抽象类与接口的异同 抽象类和接口的使用 总结 参考资料 文章正文: ?回到顶部 前言: 最近在研究.NET Core的一些类库源码的时候发现在底层类库中使用了 ...
- 抽象类和接口的异同(分点)
相同点: 两者均有抽象方法(有继承/实现它的类具体实现) 均可以引用具体子类/实现类 两者都不能直接实例化 就是不能直接new一个抽象类/接口,因为没有实际意义啦 不同点: 抽象类用abstract修 ...
- C# 抽象类与接口异同
转自:https://mp.weixin.qq.com/s?src=11×tamp=1618912505&ver=3020&signature=YPxVz675i0I ...
- 抽象类和接口类的区别
2019独角兽企业重金招聘Python工程师标准>>> 一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类 ...
- [和管子对话] 2 2007-4-6/抽象类和接口的谁是谁非
发布日期:2007.4.6 作者:Anytao ©2007 Anytao.com 转贴请注明出处,留此信息. 本文将介绍以下内容: • .NET的基础和技巧探讨 • 胡言乱语话技术 王论: 今日话题: ...
- Java 面向对象 抽象类与接口
在类的继承中,如果一个个新的子类被定义,子类变得越来越具体,父类变得更加一般和通用,类的设计应该保证父子类能够共享特征,有时将父类设计得非常抽象,使得父类没有具体的实现,这样的类叫做抽象类:一般当我们 ...
- 抽象类与接口有什么异同?
抽象类与接口有什么异同? 什么是抽象类呢? 如果一个类中包含了抽象方法,那么这个类就是抽象类.可通过类或者方法中是否有abstract来判断,(abstain只能修饰类或者方法,不能修饰属性). 那什 ...
- 抽象类和接口的特点和异同
抽象类 关键字:abstract:抽象 可以修饰类:叫做抽象类 可以修饰方法:叫做抽象方法,没有方法体,需要使用分号表示声明结束,抽象方法所在的类必须是抽象类 子类必须重写父类的抽象方法,除非子类也是 ...
- 类、抽象类、接口之间的区别
目录 1.类与抽象类的异同之处 (1)类和抽象类的区别 (2)类和抽象类的相同之处 2.接口与类的异同之处 (1)接口与类相似点 (2)接口与类的区别 (3)接口特性 3.抽象类和接口的区别 1.类与 ...
- jdk8 接口抽象类区别_JDK 8时代的抽象类与接口
jdk8 接口抽象类区别 在新的Java 8日期和时间API:Stephen Colebourne的访谈中 , Stephen Colebourne告诉Hartmut Schlosser :" ...
最新文章
- configure: error: no acceptable C compiler found in $PATH
- sqoop 增量导入,不重复
- 模拟业务最小测试用例01
- 小赋诗歌一首,以感学生时代结束
- OpenCV学习笔记(一)——OpenCV3.1.0+VS2015开发环境配置
- 《Linux内核设计与实现》读书笔记(十)- 内核同步方法
- MAP/REDUCE:Google和Nutch实现异同及其他
- Leetcode 5. 最长回文子串(Longest Palindromic Substring)
- java中的过滤器与监听器
- Java 开发者靠什么逆风翻盘?
- 谷歌宣布开源 Live Transcribe 语音识别转文字工具
- 7.Shell 编程从入门到精通 --- 流编辑
- 设置win10保护色
- web前端开发技术期末考试_(完整word版)web前端开发技术试卷三
- VB扫雷游戏的设计与开发
- Activiti 7+Maven+Idea
- 已知标准差用计算机求标准误,【摘自网络】关于标准差、标准误、相对标准差的计算...
- amazeui PHP,amazeui页面分析之登录页面
- Python 实现文本共现网络分析
- 加拿大一枝大黄花的最新消息,吃掉它。