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 接口的使用的更多相关文章

  1. java接口调用——webservice就是一个RPC而已

    很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...

  2. java 接口的作用和好处

    1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意 ...

  3. java接口

    一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...

  4. java接口的嵌套

    java接口 1.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值 2.接口中的方法默认都是 public abstract ...

  5. java 接口和抽象类的区别

    java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象 ...

  6. java 接口(上)

    1.接口中的方法都是抽象方法.而普通的抽象类里面不一定都是抽象方法.抽象类中必须有抽象方法,同时也可以有非抽象方法.继承抽象父类的子类中,如果依然有抽象方法,那么这个子类也是抽象类.即只要类中有抽象方 ...

  7. java接口和抽象类

    关于接口 1.创建一个接口,需要使用interface关键字. 2.实现一个接口,需要使用implements关键字. 3.接口的成员属性都是静态常量(默认public static final). ...

  8. python面向对象进阶 反射 单例模式 以及python实现类似java接口功能

    本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...

  9. 初探设计:Java接口和抽象类何时用?怎么用?

    今天犯了个错: “接口变动,伤筋动骨,除非你确定只有你一个人在用”.哪怕只是throw了一个新的Exception.哈哈,这是我犯的错误. 一.接口和抽象类 类,即一个对象. 先抽象类,就是抽象出类的 ...

  10. OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例

    转自:  http://blog.csdn.net/yanzi1225627/article/details/16917961 开发环境:windows+ADT Bundle+CDT+OpenCV-2 ...

随机推荐

  1. 1.2 w字+!Java IO 基础知识系统总结 | JavaGuide

    首发于:JavaGuide(「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识.) 原文地址:https://javaguide.cn/java/io/io-basis.h ...

  2. C/C++ 反汇编:多维数组与指针

    反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解.外挂技术.病毒分析.逆向工程.软件汉化等领域,学习和理解反汇编对软件调试.系统漏洞挖掘.内核原理及理解高级语言代码都有相当大的帮助, ...

  3. 搭建私有仓库Registry(Docker Hub)

    搭建私有仓库Registry(Docker Hub) 安装Docker 拉取仓库镜像:# docker pull registry 生成认证certificate mkdir ~/certs open ...

  4. Java多线程-ThreadLocal(六)

    为了提高CPU的利用率,工程师们创造了多线程.但是线程们说:要有光!(为了减少线程创建(T1启动)和销毁(T3切换)的时间),于是工程师们又接着创造了线程池ThreadPool.就这样就可以了吗?-- ...

  5. PHP利用MySQLi函数连接数据库

    PHP利用MySQLi函数连接数据库 一.连接数据库 mysqli_connect # 注意抑制符的使用 $link = @mysqli_connect('localhost','root','roo ...

  6. Sea-Search03总结&&un finish

    使用到的设计模式 Facade门面模式 为何使用? 在搜索项目中,由于使用Mvc架构且数据库中各种不同类型的数据源并没有放在同一张表,于是我们不可避免的在Controller中需要注入多个servic ...

  7. Linux-CentOS7登录页面出现Hint: caps lock on,输入大小写字母反了(大小写反转问题)

    问题描述:虚拟机CentOS7,输入大小写字母反了,开启capslock的时候变成小写字母了,关闭则变成大写了... 解决办法:只需要执行:setleds +caps 或 setleds -caps  ...

  8. Hive-服务启动和停止命令

    1.启动命令 #!/bin/bash nohup hive --service metastore >> $HIVE_HOME/logs/metasotre.log 2>&1 ...

  9. FolkMQ "单线程"消息中间件 v1.0.32 发布

    简介 采用 "单线程" + "多路复用" + "内存运行" + "快照持久化" + "Broker 集群模式& ...

  10. AT_arc125_c [ARC125C] LIS to Original Sequence 题解

    题目传送门 前置知识 贪心 | 构造 解法 对于任意一个未加入序列 \(P\) 的数 \(x<A_{i}(1 \le i \le k-1)\),如果其放在了 \(A_{i}\) 的前面,会导致最 ...