• Java 基础(接口二)


    • 定义Java类的语法格式: 先写 extends,后写 implements
      class SubClass extends SuperClass implements InterfaceA{}
    • 一个类可以实现多个接口,接口也可以继承其它接口。
    • 实现接口的类中必须提供接口中所有方法的具体实现内容,方可实例化。否则,仍为抽象类。
    • 接口的主要用途就是被实现类实现。((面向接口编程)
    • 与继承关系类似,接口与实现类之间存在多态性
    • 接口和类是并列关系,或者可以理解为一种特殊的类。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义(JDK7.0及之前),而没有变量和方法的实现。

    USBTest.java

    package com.klvchen.java1;
    
    public class USBTest {
    	public static void main(String[] args) {
    		
    		Computer com = new Computer();
    		//1. 创建了接口的非匿名实现类的非匿名对象
    		Flash flash = new Flash();
    		com.transferData(flash);
    		
    		System.out.println("******************************");
    		
    		//2. 创建了接口的非匿名实现类的匿名对象
    		com.transferData(new Printer());
    		
    		System.out.println("******************************");
    		
    		//3. 创建了接口的匿名实现类的非匿名对象
    		USB phone = new USB() {
    
    			@Override
    			public void start() {
    				System.out.println("手机开始工作");
    			}
    
    			@Override
    			public void stop() {
    				System.out.println("手机结束工作");
    			}
    			
    		};
    		com.transferData(phone);
    		
    		System.out.println("******************************");
    		
    		//4. 创建了接口的匿名实现类的匿名对象
    		
    		com.transferData(new USB() {
    			@Override
    			public void start() {
    				System.out.println("MP3开始工作");
    			}
    
    			@Override
    			public void stop() {
    				System.out.println("MP3结束工作");
    			}
    		});
    	}
    
    }
    
    class Computer{
    	public void transferData(USB usb) {
    		usb.start();
    		
    		System.out.println("具体传输数据的细节");
    		
    		usb.stop();
    	}
    }
    
    interface USB{
    	//常量: 定义了长,宽,高,最大最小的传输速度等
    	void start();
    	
    	void stop();
    }
    
    class Flash implements USB{
    
    	@Override
    	public void start() {
    		System.out.println("U盘开启工作");
    		
    	}
    
    	@Override
    	public void stop() {
    		System.out.println("U盘结束工作");
    		
    	}
    	
    }
    
    class Printer implements USB{
    
    	@Override
    	public void start() {
    		System.out.println("打印机开启工作");
    		
    	}
    
    	@Override
    	public void stop() {
    		System.out.println("打印机结束工作");
    		
    	}
    	
    }
    

  • 相关阅读:
    自己实现一个hash类的vue-router插件/vue-router底层原理实现
    XSS攻击和防护
    浏览器缓存机制介绍之http缓存-强缓存-协商缓存
    chrome控制台查看网络性能指标-TTFB_Content Download_window.performance
    vscode创建vue快捷键
    移动端布局适配方案
    node生成token
    vue组件的讨论&容易忽略的知识点
    函数防抖
    webpack-搭建项目的代码
  • 原文地址:https://www.cnblogs.com/klvchen/p/14529970.html
Copyright © 2020-2023  润新知