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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月16日 19时11分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
完成《Java编程入门》初稿
2019-05-01
Windows Server 2012下安装Hyper-V虚拟机
2019-05-01
MacOSX和Windows 8的完美融合
2019-05-01
Iphone5S 体验(视频+截图)
2019-05-01
python 多进程之进程池的操作
2019-05-01
flask入门学习之第一个程序及装饰器回顾
2019-05-01
flask整理之 flask程序中的debug模式
2019-05-01
如何和大妈解释区块链,让他们理解区块链
2019-05-01
比特币要出现夭折?或许会出现转折
2019-05-01
比特币,山寨币,到底谁占有主导地位
2019-05-01
比特币,父母这一辈能接受吗?
2019-05-01
解释区块链钱包的意思
2019-05-01
让老百姓知道什么是比特币,只需要10分钟
2019-05-01
为什么要反对比特币,这不代表是空气币
2019-05-01
5G技术如何运用在数字资产方面
2019-05-01
区块链技术运用最广泛的还是保险
2019-05-01
新冠疫情影响了经济,却带动了区块链
2019-05-01
我们提出了DeFi项目如何成为聚合器,有两种路径
2019-05-01
SnapEx的新感觉,对新手很友好
2019-05-01