接口
    难的是在系统设计里怎么样使用接口,主要在语法,不在系统架构与设计
    概念
    声明
    语法
    
    只有抽象方法的抽象类?可以用接口来表示,用接口来代替这样的抽象类,是因为:
    接口有比抽象类更好的特性
        可以被多继承(因为类是单根继承的)
        设计与实现完全分离(解耦)
        更自然的使用多态
        更容易搭建程序框架
        更容易更换实现
    接口是一种约定(具体是如何实现的,根据厂商的设计来)
        体现在接口名称和注释上
            有些接口只有名称
            方法的实现方式要通过注释来约定
        针对接口编程
            程序设计时针对接口的约定而不考虑具体实现
    接口是一种能力
        体现在接口的方法上
        针对接口编程
            程序设计时关心实现类有何能力,而不关心实现细节
            针对接口的约定而不考虑接口的具体实现
            
    接口声明的语法
        接口本身就是一个纯粹的抽象类
        <修饰符> [abstract] interface <接口名>{
        常量声明
        方法声明
        嵌套类型声明
        }
        接口是不能实例化的
        
        接口成员-方法
            抽象方法
            静态方法
            默认方法
        继承接口(接口继承接口)
            接口可以使用extends关键字
            
    实现接口
    接口的静态方法
    接口的默认方法
        
        一个类可以实现多个接口,用逗号分开就行了,实现所有的抽象方法
    
    解决冲突
    标记接口
        用于标记一个类在特定环境中具有特定的意义
        jdk中的标记接口
            java.lang.Cloneable
            java.io.Serializable
            java.rmi.Remote
        java5中引入的注解可以实现相同的功能

java_oop_接口的更多相关文章

  1. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  2. 干货来袭-整套完整安全的API接口解决方案

    在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...

  3. 12306官方火车票Api接口

    2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...

  4. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  5. Java基础Map接口+Collections

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  6. java基础_集合List与Set接口

    List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set ...

  7. 【WCF】自定义错误处理(IErrorHandler接口的用法)

    当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...

  8. PHP以接口方式实现多重继承(完全模拟)--学习笔记

     1.UML类图: 2.PHP代码: <?php /** * Created by PhpStorm. * User: andy * Date: 16-11-23 * Time: 下午7:57 ...

  9. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

随机推荐

  1. 配置jQuery环境

    获取最新版jQuery 一.jq库类型说明 jQuery.js(开发版):完整无压缩,主要用于学习.开发和测试 jQuery.min.js(生产版):主要用于产品开发和项目 二.在页面引入 <s ...

  2. 获取当前TestStep发送的request信息

    在当前test step的Script Assertion里添加 // Get request url def requestURL = messageExchange.getEndpoint() / ...

  3. 关于Appium android input manager for Unicode 提示信息

    Appium调完输入法后,会弹出  Appium android input manager for Unicode 提示信息相关的提示信息,每次运行如此,如下图 网络上查找一遍,基本解决了,只要在设 ...

  4. python ---split()函数讲解

    python ---split()函数讲解 split中文翻译为分裂. 在python用于分割字符串使用. split()就是将一个字符串分裂成多个字符串组成的列表. split()可以传入参数,也可 ...

  5. HTML5 classList使用

       add:给元素添加一个指定的class var test = document.getElementById('test'); test.classList.add('yellow');//添加 ...

  6. L342 Air Pollution Is Doing More Than Just Slowly Killing Us

    Air Pollution Is Doing More Than Just Slowly Killing Us In the future, the authorities might need to ...

  7. EditPlus软件自动补全文档htmlbar.acp设置 及 模板文件格式

    1.在htmlbar.acp文件末尾添加如下内容,可自动补全: #T=HTML <html>    ^! </html>   #T=HEAD <head>    ^ ...

  8. Navicat连接Mysql报错:Client does not support authentication protocol requested by server;

    Navicat连接Mysql报错:Client does not support authentication protocol requested by server: 刚安装Mysql,想用Nav ...

  9. axis调用Web服务报axis unexpected wrapper element{XXXX}XXX错误的解决

    使用axis调用WebService时报错:axis unexpected wrapper element{XXXX}YYY .... expected {XXXX}. 经查,XXXX为wsdl文件中 ...

  10. Angular4.0中常用指令

    Angular 4.0 1. 指令:*ngFor 循环带索引的两种方法: <tr *ngFor="let item of listWorkingDetails index as i&q ...