Java基础00-接口组成更新31
1. 接口组成更新
1.1 接口组成更新概述


1.2 接口中默认方法

代码示例:
需求:
- 1:定义一个接口MyInterface,里面有两个抽象方法:
void show1();
void show2();
- 2:定义接口的实现类:
MyInterfaceImpl
- 3:定义测试类:
MyInterfaceDemo
在主方法中,按照多态的方式创建对象并使用
接口MyInterface:
//1:定义一个接口MyInterface,里面有两个抽象方法:
// void show1();
// void show2();
public interface MyInterface {
void show1(); void show2(); //default默认方法,可以使实现类不用实现该方法。
//还可以直接定义方法内容
default void show3() {
System.out.println("One show3");
}
}
定义接口的实现类:
//2:定义接口的实现类:
//MyInterfaceImpl
public class MyInterfaceImpl implements MyInterface { @Override
public void show1() {
System.out.println("One show1");
} @Override
public void show2() {
System.out.println("One show2");
} //实现类中并没有实现show3方法,但是也没有报错。
}
定义测试类:
//3:定义测试类:
//MyInterfaceDemo
//在主方法中,按照多态的方式创建对象并使用
public class MyInterfaceDemo {
public static void main(String[] args) {
MyInterface my = new MyInterfaceImpl();
my.show1();
my.show2(); // 如果想要添加一个新的接口方法,但是别的实现类又不要实现它,怎么办?
// 在接口中使用default
my.show3();
}
}
运行结果:

show3方法也可以被重写这里就不写示例了。
1.3 接口中静态方法

代码示例:
需求:
- 1:定义一个接口Inter,里面有三个方法:一个是抽象方法,一个是默认方法,一个是静态方法
void show();
default void method(){ }
public static void test(){ }
- 2:定义接口的一个实现类:
InterImpl
- 3:定义测试类:
InterDemo
在主方法中,按照多态的方式创建对象并使用
接口Inter
//1:定义一个接口Inter,里面有三个方法:一个是抽象方法,一个是默认方法,一个是静态方法
//void show();
//default void method(){ }
//static void test(){ }
public interface Inter {
void show(); default void method() {
System.out.println("Inter 中的默认方法执行了");
} static void test() {
System.out.println("Inter 中的静态方法执行了");
}
}
实现类InterImpl
//2:定义接口的一一个实现类:
//InterImpl
public class InterImpl implements Inter { @Override
public void show() {
System.out.println("show方法执行了");
}
}
测试类:
//3:定义测试类:
//InterDemo
//在主方法中,按照多态的方式创建对象并使用
public class InterDemo {
public static void main(String[] args) {
Inter i = new InterImpl();
i.show();
i.method();
// 接口中的静态方法只能由类名调用,这样的为了防止一个实现类实现两个接口,但是两个接口中又有同名称的静态方法。
// i.test();
Inter.test();
}
}
运行结果:

1.4 接口中私有方法

Java基础00-接口组成更新31的更多相关文章
- Java基础十--接口
Java基础十--接口 一.接口的定义和实例 /* abstract class AbsDemo { abstract void show1(); abstract void show2(); } 8 ...
- Java基础-面向接口(interface)编程
Java基础-面向接口(interface)编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的“类 ...
- 【Java基础】接口和抽象类之间的对比
Java 中的接口和抽象类之间的对比 一.接口 Interface,将其翻译成插座可能就更好理解了.我们通常利用接口来定义实现类的行为,当你将插座上连接笔记本的三角插头拔掉,换成微波炉插上去的时候,你 ...
- [JavaCore] 不错的Java基础学习资料-持续更新
容易弄混的JAVA基础知识: http://www.iteye.com/topic/943647 [总结]String in Java: http://www.iteye.com/topic/5221 ...
- Java基础(00)
Java发展史 Java之父:詹姆斯.高斯林(James Gosling). SUN(Stanford University Network 斯坦福大学网络公司)产物. 1995年5月23日,java ...
- JAVA基础之接口
接口 学习完框架之后,整合SSM过程中对于接口的认识加深了许多.根据<java核心技术>这本书进一步研究了一下. 1.概念 java核心技术是这样说的:"在Java程序设计中,接 ...
- Java基础10 接口的继承与抽象类
链接地址:http://www.cnblogs.com/vamei/archive/2013/03/31/2982240.html 作者:Vamei 出处:http://www.cnblogs.com ...
- Java基础10 接口的继承与抽象类(转载)
接口继承 接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型.比如,我们以Cup作为原interface: interface Cup{ ...
- java基础(11):接口、多态
1. 接口 1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成. ...
随机推荐
- mybatis-plus 分页查询+ dao层抽象
1.配置文件添加paginationInterceptor @Configuration @MapperScan("fama.cost.*.mapper") public clas ...
- CVPR 2020目标跟踪多篇开源论文(上)
CVPR 2020目标跟踪多篇开源论文(上) 1. SiamBAN:面向目标跟踪的Siamese Box自适应网络 作者团队:华侨大学&中科院&哈工大&鹏城实验室&厦门 ...
- CSS 常见问题笔记
CSS 常见问题 布局 一.盒模型宽度计算 问题:div1 的 offsetWidth 是多少? <style> #div1 { width: 100px; padding: 10px; ...
- STM32使用DMA发送串口数据
1.概述 上一篇文章<STM32使用DMA接收串口数据>讲解了如何使用DMA接收数据,使用DMA外设和串口外设,使用的中断是串口空闲中断.本篇文章主要讲解使用DMA发送数据,不会讲解基础的 ...
- Python_Selenium之basepage 识别元素、浏览器操作、获取属性、鼠标事件、键盘事件、弹窗、切换frame、切换句柄等封装
#coding=gbkimport osimport timefrom selenium import webdriverfrom selenium.webdriver.common.by impor ...
- GitHub标星125k!阿里技术官用3个月总结出的24万字Java面试笔记
最近收到一位粉丝的回馈! 这位粉丝已经成功入职阿里了小编很是羡慕啊! 今天就把这份30w字Java面试笔记给大家分享出来,说来也巧这份资料也是由一位阿里技术官整理出来的这算不算是"搬起石头砸 ...
- 【NX二次开发】指定矢量控件,记住上次选择的方向
block UI控件如果有RetainValue属性,就用这个属性.没有这个属性可以参考下面这种方法.以矢量控件为例: 1.在apply_cb回调中,将控件值保存到文本中 double TopForT ...
- 空指针的解决方案Optional包装类
有道云笔记地址 (建议有道云打开,markdown文档,直接拷贝过来有一些问题) 引言 在java的开发中,有一个问题始终会伴随着开发的进程.记得我第一个项目的时候,有一个同事在评论我的代码的时候说到 ...
- 深入了解Debug和Release的区别
原文地址:https://blog.csdn.net/sky___ice/article/details/8993885 一: Bin 目录用来存放编译的结果,bin是二进制binrary的英文缩写, ...
- beego搭建api服务
beego介绍 beego是一个Golang实现的开源Go应用开发框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful的框架,主要设计灵感来源于tornado.sin ...