什么是接口,面向接口编程的好处是什么?
一.什么是接口
接口是抽象类的延伸,可以将它看作是纯粹的对象类,接口中的方法都没有方法体。
接口使用interface关键字定义,语法:
public interface MyInterface {public void foo();//其他方法
}
注意:1.接口类中的方法体都是抽象方法,没有方法体。2.接口类中的方法必须都是公共的,所以可以省略public关键字,默认是public。3.接口类中的属性全都是全局静态常量。
二.如何使用接口
1.编写接口——使用interface关键字定义类
public interface UsbInterface {/*** USB接口提供服务。*/void service();
}
2.实现接口——使用implements
public class UDisk implements UsbInterface { //多个接口使用“,”隔开public void service() {System.out.println("连接USB口,开始传输数据。");}
}
3.使用接口
public class Test{public static void main(String[] args){UsbInterface uDisk = new UDisk();uDisk.service();}
}
注意:接口表示的是一种能力,体现在接口的方法上。在设计程序时,只关心实现类有何能力,而不关心实现细节;面向接口的约定而不考虑接口的具体实现,接口是一种约定体现在名称和注释上:1.有些接口只有名称,2.方法的实现方式要通过注释来约定。
三.接口的特性
1.接口不可以被实例化。
2.实现类必须实现接口的所有方法(类似于抽象类和抽象方法)。
3.实现类可以实现多个接口,不同接口之间使用“,”隔开。
4.接口中的变量都是静态常量,即使用static和final修饰的最终变量(一般不在接口中声明变量)。
四.如何理解接口是一种能力?
接口有比抽象类更好的特性:
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现
五.面向接口编程的好处
1.更加抽象,更加面向对象
2.提高编程的灵活性(提高了代码的可扩展性)
3.实现高内聚、低耦合
4.提高可维护性,降低系统维护成本
六.接口和继承的异同
继承:类和类之间是继承关系,关键字extends。单继承,子类和父类的关系
接口:类和接口之间是实现关系,关键字implements。多实现,接口和实现类的关系
什么是接口,面向接口编程的好处是什么?相关推荐
- 面向接口编程的好处分析
洞悉编程思想是我们学习语言过程中的必由之路,但注意对于编程思想的理解一定要建立在大量的代码实现经验上,不然只是在口头空谈编程思想而不去编程,根本无法深入理解思想的核心. 面向对象思想的核心之一,就是模 ...
- python面向接口编程_Python 中的面向接口编程
前言 "面向接口编程"写 Java 的朋友耳朵已经可以听出干茧了吧,当然这个思想在 Java 中非常重要,甚至几乎所有的编程语言都需要,毕竟程序具有良好的扩展性.维护性谁都不能拒绝 ...
- 问题小结(二)——maven的核心功能、面向对象编程和面向接口编程的区别、抽象类和接口的区别等
文章目录 1. Java创建对象有哪四种方式? 2. 什么是maven?maven的核心功能有哪些? 3. 什么是MVC?说说分层的好处. 4. Spring的两大核心技术是什么? 5. 什么是IOC ...
- 面向接口编程的优点_为什么我们要面向接口编程
到底面向?编程 面向过程编程( ProcedureOriented.简称 PO) 和 面向对象编程( ObjectOriented.简称 OO) 我们一定听过,然而实际企业级开发里受用更多的一种编程思 ...
- 面向接口编程 (噬菌体) 不错的接口
面向接口编程 依赖倒置的意思是,我们在面向对象设计时,将这个上层依赖下层的结构化编程依赖思想倒置一下子(其实不是倒置,应该是转换一下子),变成:上层不依赖于下层,下层也不依赖于上层,上层和下层都依赖一 ...
- 细说Mybatis一级缓存、二级缓存以及mybatis获取mapper的面向接口编程思想(Mapper接口动态代理实现原理)(二)
上一章和大家分享了Mybatis一级缓存和二级缓存,本章将继续和大家分享Mapper接口动态代理实现原理,按照国际惯例,先看源码,然后结合原理,写一个自己的小demo,从理论到实战,真正掌握面向接口编 ...
- 面向接口编程详解(一)——思想基础
我想,对于各位使用面向对象编程语言的程序员来说,"接口"这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为 ...
- 面向接口编程详解(一)—— 思想基础
我想,对于各位使用面向对象编程语言的程序员来说,"接口"这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为 ...
- 面向接口编程详解(三)——模式研究
通过前面两篇,我想各位朋友对"面向接口编程"的思想有了一定认识,并通过第二篇的例子,获得了一定的直观印象.但是,第二篇中的例子旨在展示面向接口编程的实现方法,比较简单,不能体现出面 ...
最新文章
- NBT:主流高通量测序仪在人/细菌/宏基因组测序评测结果发布,华大智造表现优异...
- 经济学中的定量分析python_Sargent定量经济学(3):Python
- idea使用svn拉取项目代码_IntelliJ IDEA 14 拉取SVN maven 多模块项目 部署tomcat 详细图解!...
- Java技巧: 根据网址查询DNS/IP地址
- mysql ip比较大小_MySQL优化/面试,看这一篇就够了
- 关于FPGA核心bug解决
- win7系统下的打印机不能扫描
- datatables 树形表格 java数据组装_实学:Java开发自己的博客系统-第三十篇(后台添加栏目功能-4)...
- 微信开发第7章 通过accesstoken获取用户黑名单列表
- iOS开发之tintColor属性详解
- php sub pos,PHP pos()用法及代码示例
- linux输入法_惊奇软件:这是我见过最有【态度】的输入法!
- 雷视一体机助力智慧高速路侧感知建设
- 三月校赛1006 wuli通通和Fibonacci (a[n]=f[n]*(n^m)的前k项和)
- Revit二次开发_类别对应的BuiltInCategory枚举
- win10更新后闪屏处理方法
- 霍营派出所办理居住证
- 计算机硬件日语,求一些电脑硬件的日语说法(比如显卡等)
- Flutter:bottomNavigationBar图标白色的解决办法
- springboot采用协同过滤算法的家政服务平台的设计与实现毕业设计源码260839