接口
难的是在系统设计里怎么样使用接口,主要在语法,不在系统架构与设计
概念
声明
语法
只有抽象方法的抽象类?可以用接口来表示,用接口来代替这样的抽象类,是因为:
接口有比抽象类更好的特性
可以被多继承(因为类是单根继承的)
设计与实现完全分离(解耦)
更自然的使用多态
更容易搭建程序框架
更容易更换实现
接口是一种约定(具体是如何实现的,根据厂商的设计来)
体现在接口名称和注释上
有些接口只有名称
方法的实现方式要通过注释来约定
针对接口编程
程序设计时针对接口的约定而不考虑具体实现
接口是一种能力
体现在接口的方法上
针对接口编程
程序设计时关心实现类有何能力,而不关心实现细节
针对接口的约定而不考虑接口的具体实现
接口声明的语法
接口本身就是一个纯粹的抽象类
<修饰符> [abstract] interface <接口名>{
常量声明
方法声明
嵌套类型声明
}
接口是不能实例化的
接口成员-方法
抽象方法
静态方法
默认方法
继承接口(接口继承接口)
接口可以使用extends关键字
实现接口
接口的静态方法
接口的默认方法
一个类可以实现多个接口,用逗号分开就行了,实现所有的抽象方法
解决冲突
标记接口
用于标记一个类在特定环境中具有特定的意义
jdk中的标记接口
java.lang.Cloneable
java.io.Serializable
java.rmi.Remote
java5中引入的注解可以实现相同的功能
java_oop_接口的更多相关文章
-
App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
-
干货来袭-整套完整安全的API接口解决方案
在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...
-
12306官方火车票Api接口
2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...
-
Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
-
Java基础Map接口+Collections
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
-
java基础_集合List与Set接口
List接口继承了Collection的方法 当然也有自己特有的方法向指定位置添加元素 add(索引,添加的元素); 移除指定索引的元素 remove(索引) 修改指定索引的元素 set ...
-
【WCF】自定义错误处理(IErrorHandler接口的用法)
当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...
-
PHP以接口方式实现多重继承(完全模拟)--学习笔记
1.UML类图: 2.PHP代码: <?php /** * Created by PhpStorm. * User: andy * Date: 16-11-23 * Time: 下午7:57 ...
-
【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
随机推荐
-
DELPHI出现无法加载dclite50.bpl的解决办法(转)
现象: Borland Integrated Translation Environment 加载出错 解决办法: 我的电脑--->(鼠标右键)属性--->高级--->(性能)设置- ...
-
GUI、GUILayout、EditorGUI、EditorGUILayout
GUI GUI.BeginGroup(rect) //在里面画的控件,将以这个GroupRect的左上角为原点,仅此而已 GUI.EndGroup() GUILayout GUILayout.Begi ...
-
PHP练习题(一)
程序1 .题目: 企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10% : 利润高于10 万元, 低于20 万元时, 低于10万元的部分按10% 提成,高于 10万元的部分,可提 ...
-
python之路-SQLAlchemy
SQLAchemy SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行S ...
-
Python命令行参数sys.argv[]
学习C语言的时候就没弄明白命令行参数的用法,在学习Pyton 的时候又遇到了命令行参数,在这里稍微学习了一下,稍微明白了一些在这里做个记录方便后面回顾复习. Sys.argv[]是用来获取命令行参数的 ...
-
Socket在手机上的应用
usb读取:pid vid --可以唯一的确定设备获取手机驱动socket固定端口通信 wifipc机在局域网内,udp的数据包(整个网段) 蓝牙配对 bluetoothsocket 如果放大:可以分 ...
-
Flask入门之开发简单登陆界面
涉及知识点: render_template() redirect():注意def的函数不要使用这个Python关键字 url_for():可以传参数给动态路由 动态路由 # Sample.py fr ...
-
C# fckeditor添加上传附件功能
最近在维护系统时,要把fckediotr加上上传附件功能,好久没有用fckeditor了,现在都已经改名字,不叫这个了. 修改统计器下面的fckconfig.js,方法如下: 1.把FCKConfig ...
-
servlet乱码 解决方法 2种方法
public class ResponseDemo1 extends HttpServlet { public void doGet(HttpServletRequest req, HttpServl ...
-
tab栏切换fengz
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...