Java 接口的使用
1 package com.bytezreo.interfacetest;
2
3 /**
4 *
5 * @Description 接口的使用
6 * @author Bytezero·zhenglei! Email:420498246@qq.com
7 * @version
8 * @date 下午7:44:28
9 * @ 1.接口的使用满足多态性
10 * 2.接口:实际上定义了一种规范
11 * 3.面向接口编程
12 *
13 */
14 public class USBTest {
15 public static void main(String[] args) {
16
17 Computer com = new Computer();
18
19 //1.创建了接口的非匿名实现类的非匿名对象
20 Flash flash = new Flash();
21 com.transferDate(flash);
22 System.out.println("************************");
23 Printer printer = new Printer();
24 com.transferDate(printer);
25 System.out.println("************************");
26
27 //2.创建了接口的非匿名实现类的匿名对象
28 com.transferDate(new Printer());
29 System.out.println("************************");
30
31 //3.创建了接口的匿名实现类的非匿名对象
32 USB phone = new USB() {
33
34 @Override
35 public void start() {
36 System.out.println("手机开始工作");
37
38 }
39
40 @Override
41 public void stop() {
42 System.out.println("手机结束工作");
43
44 }
45
46
47 };
48
49 com.transferDate(phone);
50 System.out.println("************************");
51
52 //4.创建了接口的匿名实现类的匿名对象
53
54 com.transferDate(new USB() {
55
56 @Override
57 public void start() {
58 System.out.println("MP3开始工作");
59
60 }
61
62 @Override
63 public void stop() {
64 System.out.println("MP3接受工作");
65
66 }
67
68
69
70 });
71
72
73
74 }
75
76 }
77
78 class Computer{
79 public void transferDate(USB usb) { //USB usb = new Flash();
80
81 usb.start();
82
83 System.out.println("具体传输数据的细节");
84
85 usb.stop();
86 }
87
88 }
89
90 //接口
91 interface USB{
92 //定义了长,宽最大最小的传输速度等
93
94
95 void start();
96
97 void stop();
98
99 }
100
101 //U盘
102 class Flash implements USB {
103
104 @Override
105 public void start() {
106 System.out.println("U盘开始工作");
107
108 }
109
110 @Override
111 public void stop() {
112 System.out.println("U盘结束工作");
113
114 }
115
116
117
118 }
119
120 class Printer implements USB{
121
122 @Override
123 public void start() {
124 System.out.println("打印机开始后工作");
125
126 }
127
128 @Override
129 public void stop() {
130 System.out.println("打印机结束工作");
131
132 }
133
134
135 }

Java 接口的使用的更多相关文章
- java接口调用——webservice就是一个RPC而已
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...
- java 接口的作用和好处
1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意 ...
- java接口
一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...
- java接口的嵌套
java接口 1.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值 2.接口中的方法默认都是 public abstract ...
- java 接口和抽象类的区别
java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象 ...
- java 接口(上)
1.接口中的方法都是抽象方法.而普通的抽象类里面不一定都是抽象方法.抽象类中必须有抽象方法,同时也可以有非抽象方法.继承抽象父类的子类中,如果依然有抽象方法,那么这个子类也是抽象类.即只要类中有抽象方 ...
- java接口和抽象类
关于接口 1.创建一个接口,需要使用interface关键字. 2.实现一个接口,需要使用implements关键字. 3.接口的成员属性都是静态常量(默认public static final). ...
- python面向对象进阶 反射 单例模式 以及python实现类似java接口功能
本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...
- 初探设计:Java接口和抽象类何时用?怎么用?
今天犯了个错: “接口变动,伤筋动骨,除非你确定只有你一个人在用”.哪怕只是throw了一个新的Exception.哈哈,这是我犯的错误. 一.接口和抽象类 类,即一个对象. 先抽象类,就是抽象出类的 ...
- OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例
转自: http://blog.csdn.net/yanzi1225627/article/details/16917961 开发环境:windows+ADT Bundle+CDT+OpenCV-2 ...
随机推荐
- 你不知道的Promise构造函数Promise(excutor)
Promise构造函数Promise(excutor) // 说明一下:excutor会在Promise内部立刻同步调用:(异步操作在执行器执行) var p = new Promise((resol ...
- 大语言模型的预训练4:指示学习Instruction Learning详解以及和Prompt Learning,In-content Learning区别
大语言模型的预训练[4]:指示学习Instruction Learning:Entailment-oriented.PLM oriented.human-oriented详解以及和Prompt Lea ...
- C#9中使用静态匿名函数
匿名函数是很早以前在C#编程语言中引入的.尽管匿名功能有很多好处,但它们并不便宜.避免不必要的分配很重要,这就是为什么在C#9中引入静态匿名函数的原因.在C#9中,lambda或匿名方法可以具有静态修 ...
- 设置两个Chrome浏览器 一个正常使用 一个无图片版
添加两个Chrome浏览器 双击打开Chrome浏览器,点击右上角头像,点击添加 选择"在不登录帐号的情况下继续",创建一个名字,选个配色,勾选下面的创建桌面快捷方式 此时会打开一 ...
- SSD数据不能恢复?或许还有的救
我们经常说机械硬盘相对于固态硬盘的一个优势是数据可以恢复,难道SSD固态硬盘的数据就不能恢复了吗? 这里先简单介绍一下SSD的工作方式,SSD中的数据是以电子的形式通过浮栅保存的,写入就是通过增加电压 ...
- Java并发(二十三)----同步模式之保护性暂停
1.定义 即 Guarded Suspension,用在一个线程等待另一个线程的执行结果 要点 有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject 如果有结果不断从 ...
- [Ngbatis源码学习][Spring] Spring 的资源管理 ResourceLoader
在学习Ngbatis的源码时,看到了有关xml文件的加载,涉及到了资源的加载,对相关知识进行总结与整理. 1. 相关类 Resource AbstractResource ResourceLoader ...
- offline 2 online | Cal-QL:校准保守 offline 训出的 Q value,让它与真实 reward 尺度相当
论文标题:Cal-QL: Calibrated Offline RL Pre-Training for Efficient Online Fine-Tuning. NeurIPS 2023,5 5 6 ...
- 【Lua】ToLua逻辑热更新
1 前言 Lua基础语法 中系统介绍了 Lua 的语法体系,xLua逻辑热更新 中介绍了 xLua 的应用,本文将进一步介绍 Unity3D 中基于 ToLua 实现逻辑热更新. 逻辑热更新是 ...
- CSS实现展开动画
CSS实现展开动画 展开收起效果是比较常见的一种交互方式,通常的做法是控制display属性值在none和其它值之间切换,虽说功能可以实现,但是效果略显生硬,所以会有这样的需求--希望元素展开收起能具 ...