1、接口

接口就是比“抽象类"还“抽象”的“抽象类”, 可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。接口是完全面向规范的,规定了-批类具有的公共方法规范。

  • 从接口的实现者角度看,接口定义了可以向外部提供的服务。
  • 从接口的调用者角度看,接口定义了实现者能提供那些服务。

接口是两个模块之间通信的标准,通信的规范。如果能把你要设计的模块之间的接口定义好,就相当于完成了系统的设计大纲,剩下的就是添砖加瓦的具体实现了。大家在工作以后,做系统时往往就是使用“面向接口”的思想来设计系统。

接口和实现类不是父子关系,是实现规则的关系。比如:我定义一-个接口Runnable , Car实现它就能在地上跑, Train实现它也能在地上跑,飞机实现它也能在地上跑。就是说,如果它是交通工具,就定能跑,但是一定要实现Runnable接口。

接口就是一种契约、协议

声明格式:

[访问修饰符号] interface 接口name [extends 父接口1,父接口2] {常量定义:方法定义:
}

1、访问修饰符:只能是public 或者默认
2、extends:接口支持多继承
3、接口中的属性只能是常量,默认就是public static finnal
4、接口中的方法默认是public abstract


要点:

1、接口不能实例化对象 可以用来声明引用变量的类型
2、一个类实现一个接口,那么必须实现这个接口中定义的所有方法,并且只能是public
3、jdk1.7以及之前 接口中只能有方法的定义 jdk1.8之后可以有default(虚拟扩展方法)和静态方法

2、 接口和抽象类的区别

接口 抽象类
不考虑java8中default方法的情况下,接口中是没有实现代码的实现 抽象类中可以有普通成员方法 ,并且可以定义变量
接口中的方法修饰符号 只能是public 抽象类中的抽象方法可以有public,protected,default
接口中没有构造方法 可以有构造方法

接口和抽象类如何选择:

1、当我们需要一组规范的方法的时候,我们就可以用接口,在具体的业务中,来对接口进行实现,能达到以不变应对万变,多变的需求的情况我们只需要改变对应的实现类 。
2、如果多个实现类中有者相同可以复用的代码 这个时候就可以在实现类和接口之间,添加一个抽象类,把公共的代码抽出在抽象类中。然后要求不同实现过程的 子类可以重写抽象类中的方法,来完成各自的业务。

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

  1. java抽象和接口的理解_Java接口实现与抽象类的区别理解 | 彬菌

    版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创! 恰饭广告 接口:接口是抽象方法的集合.接口通常以interface来声明. 接口注意事项: 1.严格来说,接口是用来实现(i ...

  2. 接口和一些抽象类的区别

    接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的.接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static f ...

  3. 抽象类和接口的区别,接口能代替抽象类吗

    答案:接口不能代替抽象类. 区别:抽象类有构造器,接口没有. 抽象类可以有主体方法,接口不能 接口的变量都是静态不可改变的变量 注意: 方法的主体就是方法的实现 抽象类和接口都一样可以声明方法,不需要 ...

  4. Python学习日记(二十五) 接口类、抽象类、多态

    接口类 继承有两种用途:继承基类的方法,并且做出自己的改变或扩展(代码重用)和声明某个子类兼容于某基类,定义一个接口类interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子 ...

  5. java 接口与抽象类的区别

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

  6. 抽象类(abstract class)和接口(Interface)的区别

    抽象类(abstract class)和接口(Interface)的区别 前言 抽象类(abstract class)和接口(Interface)是Java语言中对于抽象类定义进行支持的两种机制,赋予 ...

  7. OOP接口与抽象类的区别

    抽象类和接口的区别: 1.两者表达的概念不一样.抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于"是"的关系:而接口是定义行为规范,因此对于实现接口的 ...

  8. 没有体现JAVA接口功能_深入浅出分析Java抽象类和接口【功能,定义,用法,区别】...

    本文实例讲述了Java抽象类和接口.分享给大家供大家参考,具体如下: 对于OOP编程来说,抽象是它一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:抽象类和接口. 这两者有相似之处也有很 ...

  9. python接口和抽象类的区别_接口和抽象类有什么区别?

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

  10. java 关注公众号没有调接口_高频面试题:接口和抽象类的区别

    作为一个基础的Java高频面试题,是所有Java面试者必须烂熟于心的.当然不能死记硬背,可以通过实际地写几个小demo,边实际操作边理解,既能感受到编程的快乐,更重要的是真的理解记住了二者的区别. 此 ...

最新文章

  1. 《C#本质论》读书笔记(18)多线程处理
  2. python使用界面-如何使用Python建立有窗口、按钮之类的图形界面
  3. Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)
  4. win7中VS2010中安装CSS3.0问题解决方法
  5. spring boot热部署devtools
  6. Java之品优购课程讲义_day19(6)
  7. WebRTC的现状和未来:专访W3C WebRTC Chair Bernard Aboba(上)
  8. python 可视化大屏幕_如何用python搭建可视化看板?
  9. 二分法查找(Java)
  10. python读单行文本求平均值_利用Python读取json数据并求数据平均值
  11. android开发我的新浪微博客户端-登录页面UI篇(4.1)
  12. zabbix items复制
  13. 如何取消html中页眉的下划线,怎么取消页眉页脚的横线_怎样取消页眉上的横线-win7之家...
  14. 010项目沟通管理和干系人管理
  15. 德州大学奥斯汀分校计算机专业排名,德州大学奥斯汀分校专业排名一览及最强专业推荐(USNEWS美国大学排名)...
  16. 微信收货地址开发分享
  17. 代码学习之Python冒号详解
  18. eChars实现哈尔滨市区县地图展示
  19. 关于C语言网络编程(Linux)的初学习。
  20. ng-zorro 升级后 nz-table 增删数据异常

热门文章

  1. html5随机圆不重叠,利用canvas在一个盒子里画不重叠的圆,
  2. 体感互动照片墙软件解决方案
  3. EVA 4400存储硬盘故障导致数据丢失怎么恢复?
  4. JavaScript扩展运算符...
  5. docker-compose 启动 提示failed to build: manifest for java:latest not found: manifest unknown: manifest
  6. 企业要做好积分营销,提高用户忠诚度
  7. flutter upgrade升级报错
  8. 浅谈用delphi来编写蠕虫病毒
  9. 学习wed前端的路与第一小结的感受
  10. 不知道PDF文件转Word文件怎么转?分享3个自用方法