没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
详解 java 接口 interface
接口的定义
由引言可知,接口就是多个类之间的公共规范。
我们知道,普通类的定义是这样的
public class 类名{ }
接口的定义把 class 换成 interface 便可以了,如下所示:
public interface 接口名{ }
接口中定义抽象方法
接口中抽象方法的定义如下:
java
复制代码
public abstract 方法返回类型 方法名();
其中 public 和 abstract 是可以省略的。从而,可以简写为如下形式:
java
复制代码
方法返回类型 方法名();
接口的抽象方法的使用
**接口是不能 new 对象实例的。**那我们怎么调用接口的抽象方法呢?
我们需要新定义一个类来实现这个接口,然后覆盖重写接口中所有的抽象方法。
其中实现接口的类定义方式如下:
public class 类名 implements 需要实现的接口名{ //重写所有抽象方法}
比如,可以定义一个接口和一个实现类,然后再定义一个类,来调用方法。
package com.sjdwz;
/**
* @Description 接口示例代码
* @Date 2022/3/17
* @Created by 随机的未知 sjdwz.com
*/
public interface MyInterfaceStudy1 {
public abstract void test01();
}
package com.sjdwz;
/**
* @Description MyInterfaceStudy1 接口的实现
* @Date 2022/3/17
* @Created by 随机的未知 sjdwz.com
*/
public class MyInterfaceStudy1Impl implements MyInterfaceStudy1{
@Override
public void test01() {
System.out.println("实现了接口 MyInterfaceStudy1 的 test01 方法");
}
}
package com.sjdwz;
/**
* @Description 接口抽象方法使用测试
* @Date 2022/3/17
* @Created by 随机的未知 sjdwz.com
*/
public class MyInterfaceStudyTest1 {
public static void main(String[] args) {
MyInterfaceStudy1Impl myInterfaceStudy1 = new MyInterfaceStudy1Impl();
myInterfaceStudy1.test01();
}
}
注意:如果没有覆盖重写所有的抽象方法,那么本实现类需要是一个抽象类。
接口中定义默认方法
假设某场景下,我们的接口需要进行升级,必须添加某些方法来满足新的需要,
如果我们再定义抽象方法的话,那么我们之前实现该接口的所有非抽象类都需要
重新进行修改。
那么有没有一种办法,能够让我们不改动接口实现类的代码就能完成接口的升级
呢?
在 Java8 中对此给出了答案。
我们可以在接口中定义默认方法。
定义方式如下:
java
复制代码
public default 方法返回类型 方法名(){ //方法里面需要执行的内容}
public 可以省略。
接口的默认方法的使用
我们在定义接口的实现类时,不需要对默认方法进行覆盖重写,就可以使用该方
法。请看如下的例子:
接口类的定义
package com.sjdwz;
/**
* @Description 接口的默认方法
* @Date 2022/3/17
* @Created by 随机的未知 sjdwz.com
*/
public interface MyInterfaceStudy2 {
default void defaultFucTest01(){
System.out.println("我在 defaultFucTest01 中,我是一个默认方法,我解决了接口升
剩余10页未读,继续阅读
资源评论
Andy&lin
- 粉丝: 98
- 资源: 214
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功