Java中接口与接口和类之间的关系
接口和接口之间的关系
继承关系
可以多继承,并且可以多层继承
注意:
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中接口与接口和类之间的关系的更多相关文章
- java中的xml与实体类之间的映射
实体类: package xml; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class User ...
- Java 中 Map与JavaBean实体类之间的相互转化
/** * 将一个 JavaBean 对象转化为一个 Map * @param bean 要转化的JavaBean 对象 * @return 转化出来的 Map 对象 * @throws Intr ...
- Servlet中常用对象及API类之间的关系
Servlet最常用的对象: 请求对象:ServletRequest和HttpServletRequest,通过该对象获取来自客户端的请求信息 响应对象:ServletResponse和HttpSer ...
- 转:二十一、详细解析Java中抽象类和接口的区别
转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...
- 关于JAVA中抽象类和接口的区别辨析
今天主要整理一下新学习的有关于Java中抽象类和接口的相关知识和个人理解. 1 抽象类 用来描述事物的一般状态和行为,然后在其子类中去实现这些状态和行为.也就是说,抽象类中的方法,需要在子类中进行重写 ...
- Java 中的集合接口——List、Set、Map
Java 中的集合接口——List.Set.Map 什么叫集合:集合就是Java API所提供的一系列类的实例,可以用于动态存放多个对象.这跟我们学过的数组差不多,那为什么我们还要学集合,我们看看数组 ...
- java中的标记接口(标签接口)
Java中的标记接口(Marker Interface),又称标签接口(Tag Interface),具体是不包含任何方法的接口.在Java中很容易找到标记接口的例子,比如JDK中的Serialzab ...
- Java中的Serializable接口和transient关键字
Java中的Serializable接口和transient关键字 Table of Contents 1. 向memcached中放数据时遇到NotSerializableException异常 2 ...
- 用好JAVA中的函数式接口,轻松从通用代码框架中剥离掉业务定制逻辑
大家好,又见面了. 今天我们一起聊一聊JAVA中的函数式接口.那我们首先要知道啥是函数式接口.它和JAVA中普通的接口有啥区别?其实函数式接口也是一个Interface类,是一种比较特殊的接口类,这个 ...
随机推荐
- VM Workstation 虚拟机安装Ghost XP教程
1 工具和软件准备 VM Workstation虚拟机软件(必须) http://pan.baidu.com/share/link?shareid=304385&uk=637999033 ...
- php訪问控制
訪问控制通过keywordpublic,protected和private来实现. 被定义为公有的类成员能够在不论什么地方被訪问.被定义为受保护的类成员则能够被其自身以及其子类和父类訪问.被定义为私有 ...
- GPS时间
GPS信息里面包含一个时间戳. phonegap(即cordova)的地理位置API Geolocation 提供了对设备GPS传感器的访问,返回的数据中,除了坐标,还有一个时间戳timestamp. ...
- cocos2d-x 3.0 常见问题及解决
我自己遇到的问题记录,会及时更新.希望对大家有帮助 1.打包图片生成plist后,假设在游戏中图片挨在一起可能会出现黑线,打包时将Extrude设为1就可以 2.Xcode环境下.更新资源后执行的时候 ...
- 37. ext 中sm什么意思
转自:https://zhidao.baidu.com/question/112450217.htmlsm是SelectionModel的缩写默认为RowSelectionModel其他模式还有Che ...
- MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式。
原文链接:https://www.muhanxue.com/essays/2015/01/8623699.html MVC web api 返回JSON的几种方式 1.在WebApiConfig的Re ...
- bzoj1992鬼谷子的钱袋(二分乱搞 二进制)
1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3223 Solved: 2333 Descriptio ...
- VUE使用QRcode或者vue-qr生成二维码
这里介绍两种vue生成二维码的方法 QRcode vue-qr vue-qr比QRcode功能多在可以在中间加logo 下面先介绍QRcode vue里安装qrcodejs的npm包 npm inst ...
- cglib动态代理(即AOP)
Computer.java package com.wh.spring_aop; public class Computer { public void playLOL(){ System.out.p ...
- Linux命令(005) -- kill、pkill和killall的比较
kill命令用来“杀掉”指定进程PID的进程.终止一个前台进程可以使用Ctrl+C,终止一个后台进程就须用kill命令.kill命令是通过向进程发送指定的信号来结束相应进程的.在默认情况下,kill命 ...