package InterfactTest;

public class InterfaceTest {

public static void main(String[] args) {
        // TODO Auto-generated method stub
        Computer com  = new Computer(); 
        
        com.transferData(new Print()); //创建了非匿名实现类的匿名对象
        
        Flash flash = new Flash(); //创建了非匿名实现类的非匿名对象
        com.transferData(flash);
        
        com.transferData(new USB() {

@Override
            public void start() {
                System.out.println("手机开始工作");
                
            }

@Override
            public void end() {
                // TODO Auto-generated method stub
                System.out.println("手机结束工作");
            }
            
        }); //创建了匿名实现类的匿名对象
        
        
        //创建了匿名实现类的非匿名对象
        USB dataLine = new USB(){

@Override
            public void start() {
                System.out.println("数据线开始工作");
                
            }

@Override
            public void end() {
                // TODO Auto-generated method stub
                System.out.println("数据线停止工作");
            }
            
        };
        com.transferData(dataLine);
        
        
        
        
    }

}

class Computer {
    
    public void transferData(USB usb) {
        usb.start();
        System.out.println("开始传输数据");
        usb.end();
    }
    
}

interface USB{
    
    public abstract void start();
    
    public abstract void end();
    
}

class Flash implements USB{

@Override
    public void start() {
        System.out.println("U盘开始工作");
        
    }

@Override
    public void end() {
        // TODO Auto-generated method stub
        System.out.println("U盘结束工作");
        
    }
}

class Print implements USB{

@Override
    public void start() {
        // TODO Auto-generated method stub
        System.out.println("打印机开始工作");
    }

@Override
    public void end() {
        // TODO Auto-generated method stub
        System.out.println("打印机结束工作");
    }
    
}

创建接口匿名实现类的对象的四种方法相关推荐

  1. 在Action类中获得HttpServletResponse对象的四种方法

    Struts2:在Action类中获得HttpServletResponse对象的四种方法 在struts1.x Action类的execute方法中,有四个参数,其中两个就是response和req ...

  2. python描述符魔术方法_学习笔记-Python基础9-面向对象编程OOP-类的成员描述符(property)、类的常用内置属性、类的常用魔术方法、类和对象的三种方法...

    一.类的成员描述符(property) 类的成员描述符是为了在类中,对类的成员属性进行相关操作而创建的一种方式,大部分属于数据清洗 属性有三种操作:get获取属性值.set修改或添加属性.delete ...

  3. Struts2教程6:在Action类中获得HttpServletResponse对象的四种方法

    在struts1.x Action类的execute方法中,有四个参数,其中两个就是response和request.而在Struts2中,并没有任何参数,因此,就不能简单地从execute方法获得H ...

  4. Java遍历Map对象的四种方法

    在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHa ...

  5. 对自定义类实现排序的四种方法

    一.使用LINQ. 二.使用接口IComparable<Product>. 三.使用Sort(Comparison<T> comparison)重载方法. 四.直接使用Orde ...

  6. js实现字符串转json对象的四种方法

    1. javascript函数eval() 语法: var obj = eval ("(" + txt + ")"); //必须把文本包围在括号中,这样才能避免 ...

  7. Javascript 遍历对象的四种方法

    方法一: for - in 循环遍历对象自身的和继承的可枚举属性 (循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)) 方法二: 使用Object.keys()遍历 (返回一个数组,包括对 ...

  8. js 循环对象的四种方法

    1.for in let obj = {'name': 'cookie','age': 18 }for (let key in obj) {console.log(key); // name agec ...

  9. curl linux 测试接口_Linux测试端口的连通性的四种方法

    目录 方法一.telnet telnet为用户提供了在本地计算机上完成远程主机工作的能力,因此可以通过telnet来测试端口的连通性,具体用法格式: telnet ip port 说明: ip:是测试 ...

最新文章

  1. python 将字节字符串转换成十六进制字符串
  2. 2017年11月01日普及组 I Liked Matrix!
  3. 两种自定义表单设计方案 [转贴]
  4. Android开发14——监听内容提供者ContentProvider的数据变化
  5. 如何使用T-SQL生成随机SQL Server测试数据
  6. JS对象、数组 及 数据类型 Symbol
  7. Blender建模练习:人物模型多边形建模流程图解(一核心布线篇)
  8. Windows下的扩展文件名
  9. 百度直达号轻应用开发运营指南
  10. c语言两个浮点数相乘,两个浮点变量相乘结果为什么不精确
  11. android 通知栏背景颜色跟随app导航栏背景颜色变化而变化
  12. proxmox的安装
  13. 一文看懂国内人工智能行业产业链全景(必收藏)
  14. Android必知必会-Stetho调试工具
  15. Shannon极限与Nyquist极限
  16. [漏洞分析] CVE-2022-0847 Dirty Pipe linux内核提权分析
  17. linux tod时钟,什么是ToD服务器,“时间”(非NTP)
  18. 心理服务OA系统——让心理服务机构管理工作一站到位【心悦灵】
  19. 人类幽门螺旋杆菌感染率高
  20. 蓝牙分析工具使用之Elisys

热门文章

  1. “约见”面试官系列之常见面试题之第六十九篇之document.ready和onload的区别(建议收藏)
  2. 前端学习(2008)vue之电商管理系统电商系统之获取静态属性列表
  3. 前端学习(1879)vue之电商管理系统电商系统之通过axios拦截器添加token认证
  4. elementUI的DatePicker+DateTimePicker组件的自定义日期禁用
  5. vue使用better-scroll实现下拉刷新、上拉加载
  6. 解决input输入框在iOS中有阴影问题
  7. python编写安装脚本_2. 编写安装脚本
  8. python xml添加命名空间_XML的命名空间与python解析方法
  9. 对未标记为可安全执行的脚本_三、??XSS跨站脚本攻击
  10. NetCore 依赖注入之服务之间的依赖关系