接口和接口之间的关系

继承关系

可以多继承,并且可以多层继承

注意:

1.如果多个父接口中有同名的抽象方法,那么子接口只需要实现一次即可

2.如果多个父接口中有同名的默认方法,那么子接口必须重写默认方法,必须要加default关键字3.如果多个父接口中有同名的静态方法,那么无须理会,因为静态方法只能供接口使用

4.如果多个父接口中有同名的私有方法,那么无须理会,因为私有方法只能本接口使用

接口和类之间的关系

实现关系

单实现: 一个类只实现一个接口

多实现: 一个类可以同时实现多个接口

格式:

public class 类名 implements 接口名1,接口名2,...{

}

注意:

1.如果多个接口中有同名的抽象方法,那么实现类只需要实现一次即可

2.如果多个接口中有同名的默认方法,那么实现类必须重写一次,并且要去掉default关键字

3.如果多个接口中有同名的静态方法,那么实现类无须理会,接口中的静态方法只供接口直接使用

4.如果多个接口中有同名的私有方法,那么实现类无须理会,因为接口中的私有方法只能在本接口中使用

子接口重写父接口的默认方法,必须加default关键字

实现类重写接口中的默认方法,必须去掉default关键字

一个类既可以继承另一个类,也可以实现多个接口

格式:

public class 类名 extends 父类名 implements 接口名1,接口名2,...{

}

注意:

1.如果接口父类中有同名的默认方法,优先调用父类的默认方法

2.如果接口和父类中有同名的抽象方法,那么子类必须重写一次抽象方法

普通类、抽象类和接口

普通类: 成员变量,构造方法,成员方法,静态代码块

抽象类: 成员变量,构造方法,成员方法,静态代码块,抽象方法   ---> 不能直接创建对象

接口:   常量,默认方法,静态方法,私有方法,抽象方法        ---> 不能直接创建对象

接口作为方法的参数,可以接收该接口的所有实现类的对象

接口作为方法的返回值,可以返回该接口的所有实现类的对象

Java中接口与接口和类之间的关系的更多相关文章

  1. java中的xml与实体类之间的映射

    实体类: package xml; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class User ...

  2. Java 中 Map与JavaBean实体类之间的相互转化

    /** * 将一个 JavaBean 对象转化为一个  Map * @param bean 要转化的JavaBean 对象 * @return 转化出来的  Map 对象 * @throws Intr ...

  3. Servlet中常用对象及API类之间的关系

    Servlet最常用的对象: 请求对象:ServletRequest和HttpServletRequest,通过该对象获取来自客户端的请求信息 响应对象:ServletResponse和HttpSer ...

  4. 转:二十一、详细解析Java中抽象类和接口的区别

    转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...

  5. 关于JAVA中抽象类和接口的区别辨析

    今天主要整理一下新学习的有关于Java中抽象类和接口的相关知识和个人理解. 1 抽象类 用来描述事物的一般状态和行为,然后在其子类中去实现这些状态和行为.也就是说,抽象类中的方法,需要在子类中进行重写 ...

  6. Java 中的集合接口——List、Set、Map

    Java 中的集合接口——List.Set.Map 什么叫集合:集合就是Java API所提供的一系列类的实例,可以用于动态存放多个对象.这跟我们学过的数组差不多,那为什么我们还要学集合,我们看看数组 ...

  7. java中的标记接口(标签接口)

    Java中的标记接口(Marker Interface),又称标签接口(Tag Interface),具体是不包含任何方法的接口.在Java中很容易找到标记接口的例子,比如JDK中的Serialzab ...

  8. Java中的Serializable接口和transient关键字

    Java中的Serializable接口和transient关键字 Table of Contents 1. 向memcached中放数据时遇到NotSerializableException异常 2 ...

  9. 用好JAVA中的函数式接口,轻松从通用代码框架中剥离掉业务定制逻辑

    大家好,又见面了. 今天我们一起聊一聊JAVA中的函数式接口.那我们首先要知道啥是函数式接口.它和JAVA中普通的接口有啥区别?其实函数式接口也是一个Interface类,是一种比较特殊的接口类,这个 ...

随机推荐

  1. 《C# 6.0 本质论》 阅读笔记

    <C# 6.0 本质论> 阅读笔记   阅读笔记不是讲述这本书的内容,只是提取了其中一部分我认为比较重要或者还没有掌握的知识,所以如果有错误或者模糊之处,请指正,谢谢! 对于C# 6.0才 ...

  2. UVA 11748 - Rigging Elections(dfs)

    UVA 11748 - Rigging Elections option=com_onlinejudge&Itemid=8&page=show_problem&category ...

  3. ios MetalPerformanceShaders 使用总结

    MPSCNNConvolution 1.初始化时传人 UnsafePointer<Float> 时要传入w,不能是 &(w[0]).否则w其实传入失败,卷积的结果是nan或inf. ...

  4. 【bzoj1002】 [FJOI2007]轮状病毒DP

    递推+环状特殊处理+高精度   #include<algorithm> #include<iostream> #include<cstdlib> #include& ...

  5. UVA1602 Lattice Animals 搜索+剪枝

    题目大意 给出一个$w\times h$的网格,定义一个连通块为一个元素个数为$n$的方格的集合$A,\forall x\in A, \exists y\in A$,使得$x,y$有一条公共边.现要求 ...

  6. 【转】Android Fragment中使用SurfaceView切换时闪一下黑屏的解决办法

    重构了下之前自己的一个新闻客户端,全部使用了Fragment来进行页面切换,只有一个入口Activity作为程序的启动Activity,其中有一个界面需要调用摄像头识别二维码, 于是就会用到Surfa ...

  7. 【转】Andorid获取状态栏高度

    在应用开发中,有时我们需要用代码计算布局的高度,可能需要减去状态栏(status bar)的高度.状态栏高度定义在Android系统尺寸资源中status_bar_height,但这并不是公开可直接使 ...

  8. 解决:sql2005 安装完后 没有服务的问题

    去下面网站下载SQLEXPR_CHS.EXE然后安装就ok了.http://www.microsoft.com/downloadS/details.aspx?familyid=220549B5-0B0 ...

  9. What is a good buffer size for socket programming?

    http://stackoverflow.com/questions/2811006/what-is-a-good-buffer-size-for-socket-programming 问题: We ...

  10. [linux环境配置]个人用持续更新ing~

    alias ll='ls -la' export PATH=$PATH:~/Desktop/myscript alias gpush='git push origin HEAD:refs/for/ma ...