JAVA 接口(interface) 示例与讲解 详情
发布日期:2021-06-30 15:37:26 浏览次数:2 分类:技术文章

本文共 2597 字,大约阅读时间需要 8 分钟。

package com.day29.test;

//接口的使用 举例

// 8. 接口的具体使用 体现了多态性
//9. 接口 实际可以看作一种规范

public class USBTest {

    
    public static void main(String[] args) {
        //测试 
        Computer computer=new Computer();
        //1.创建了接口的非匿名实现类的非匿名对象
        Flash flash=new Flash();
        computer.transferData(flash);
        
        //以下两个调用体现了 面向对象的多态性
        // 可以理解 声明看左边 运行看右边
        // 格式  USB usb =new Flash(); 
        // 2. 创建了接口非匿名实现类的匿名对象
        computer.transferData(new Flash());
        
        computer.transferData(new Printer());
        
        //3. 创建了接口的匿名实现类的非匿名对象
        USB phone =new USB() {
            
            @Override
            public void stop() {
                // TODO Auto-generated method stub
                System.out.println("手机开始工作");
                
            }
            
            @Override
            public void start() {
                // TODO Auto-generated method stub
                System.out.println("手机结束工作");
            }
        };
        computer.transferData(phone);
        
        //4. 创建了接口的 匿名实现类的匿名对象
        computer.transferData(new USB() {
            
            @Override
            public void stop() {
                // TODO Auto-generated method stub
                System.out.println("MP3开始工作");
            }
            
            @Override
            public void start() {
                // TODO Auto-generated method stub
                System.out.println("MP3开始工作");
                
            }
        });
    }

}

//电脑

class  Computer{
    
    public void transferData(USB usb) {  //声明的是USB这个接口 但是实例化的他的实现类 
                                         // 格式  USB usb =new Flash()
        usb.start();
        
         System.out.println("具体的传输数据细节");    
    
        usb.stop();
        
    }
    
}

//这个usb 接口 实际就是定义了一种规范 

// 谁来使用电脑类中的 USB 这个功能 都需要遵守这些规范
interface USB{
    //定义了 长 宽 最大最小传输速度
    
    
    
    void start();
    
    void stop();
}

//u盘
class Flash implements USB{

    @Override

    public void start() {
        // TODO Auto-generated method stub
        System.out.println("u盘开启工作");
        
    }

    @Override

    public void stop() {
        // TODO Auto-generated method stub
        System.out.println("u盘停止工作");
        
    }
    
}

//打印机

class Printer implements USB{

    @Override

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

    @Override

    public void stop() {
        // TODO Auto-generated method stub
        System.out.println("打印机停止工作");
        
    }
    
}

//为什么 要使用 接口这种规范来是设计程序

//例如

// 现在java 去操作数据库 
// 数据库种类有 mysql oracle sqlserver 等等
// 在没有接口这种规范的时候 
// 实际 Java 可以之间操作  mysql 或者是 oracle 
// 如果 mysql 和 oracle 实现增删改查的方式不同 或者实现的方法名不同
//  比如 
//  mysql 实现插入数据操作方法  叫做 add
//  oracle 实现插入数据操作 叫做方法 insert
//  这样对于我们程序员来说 
//   如果今天你要去操作 mysql 你要去学习 mysql中的方法
//   如果明天你要去操作 oracle 你就要去学习oracle中的方法 
//   这样会非常的累 而且不好记住
//   所以在程序设计的时候 JAVA大神们就会利用 接口这种规范和面向对象的多态性  
//   把JAVA 去往各种数据库路上 架起了一个 桥梁(JDBC) 他们去定义数据库的规范 
//    然后数据库实现类 必须遵循这个规范来开发具体实现的方法
//    程序员在调用数据库就不必考虑到底是mysql 或者是oracle 
//    程序员直接在这个桥梁上按照规范调用方法 即可实现各种数据库的操作
//   这样对于调用数据库操作 大家只用记住接口定义的方法即可
//   无需再去一一学习底层数据库的操作 大大提高了开发效率
//   java -> JDBC(这里封装了各种数据库操作的接口)-> oracle/ mysql /sqlserver 
//   数据库类中实现操作数据库的方法 必须按照接口的规范开发

 //  (在定义规范的时候不清楚mysql/oracle 具体实现的逻辑 所以只能定义抽象方法 具体的实现通过‘数据库实现类’来实现 )  [多态的体现]

 //    (我把规矩定在这边,在这里操作 必须都要遵守我的规范 )
//     (比如方法名 我规范 使用‘add’单词 命名插入操作)
//     (所有数据库实现具体方法必须都要按照我的规范声明)

//    在开发中体会  面向接口编程的思想

转载地址:https://jsonll.blog.csdn.net/article/details/108394844 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java 接口(interface)和面向对象的详情 (代理模式)
下一篇:java 接口(interface) 语法的使用和详解

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月16日 19时11分06秒