首页 > 其他分享 >接口与其实现类之间的关系(自己因为具体实例而产生的问题与解答)

接口与其实现类之间的关系(自己因为具体实例而产生的问题与解答)

时间:2022-09-05 17:45:10浏览次数:86  
标签:实现 void 接口 对象 add 实例 new 解答

接口里的方法是抽象的,不具体实现,需要实现类去实现它

实现类必须实现接口的所有方法(自己定义如何实现)

例子;

interface A{
    void add();
}
class B implements A{
    void add(){
        sout("加")
    }
}
class C implements A{
    B b;
    public void setC(B b){
        this.b = b;
    }
    Void add(){
        b.add();
    }
}

那么现在就有了几个问题:

  1. A a = new B();
    定义的对象a是A类型还是B类型?
        答:是接口A引用指向B的对象,所以是B类型
        那为什么要引用呢?和直接创建实现类有什么区别?
        答:是为了使接口A实例化。。。为什么呢
        是为了减少代码量修改,如果要使用另一个实现类D,将B改为D即可,其余实现的方法如a.add();不变。
    
  2. 我如果使用C创建的对象来实现方法,只能直接创建C的对象( C c = new C();)而不能引用A接口,不然C中的set方法无法使用,同时,C中引用的B对象也必须是B创建的对象(B b = new B();)不能引用A接口,原因是什么?

答:因为在C实现类里调用的是B的对象,所以在主函数里也必须调用B对象,如果在C里改用接口A(A a),则调用时就可以用A接口引用的B对象
    A a = new B();
	C c = new (a);
从而实现在B中添加功能需使用代理C来实现,从而保证B不会被修改,防止其他程序代码的错误
    同时也能保证问题一;


学习文章:https://blog.csdn.net/weixin_44769957/article/details/110000881

标签:实现,void,接口,对象,add,实例,new,解答
From: https://www.cnblogs.com/isku-ran/p/16658987.html

相关文章

  • TS创建接口和接口类型数组,并统一导入后引用
    在app.ts中引用import{users,IRoute,IUser,routes}from"./data";在index.ts中统一导入后导出export*from"./routes";export*from"./users";importro......
  • 如何用AscendCL的接口开发网络模型推理场景下应用?
    摘要:本期我们来深入讲解网络模型推理场景下,具体怎么做。本文分享自华为云社区《【CANN文档速递09期】应用开发之推理场景》,作者:昇腾CANN。我们知道,使用AscendCL接口开......
  • 接口协议(3) - UART
    UART(UniversalAsynchronousReceiverandTransmitter),通用异步收发器(串口),还有一种USART(UniversalSynchronousAsynchronousReceiverandTransmitter),通用同步异步......
  • Java接口自动化测试框架系列(八)测试结果通知(钉钉通知)
    通过前七步的框架搭建,此时框架已经可以开始进行接口测试了,但是运行的结果需要手动去项目的工作空间去查看,非常不方便。很多公司使用的钉钉来进行日常办公的沟通,我们也可以......
  • MAUI 使用 Refit 调用接口库
    今天给大家推荐一个APP调用API的类库:Refit我们在做客户端程序时,经常是要调用后台开发的API,调用API直接使用HttpClient是非常繁琐而原始的方式,现在提供一直更方便......
  • API接口签名校验(C#版)
    我们在提供API服务的时候,为了防止数据传输过程被篡改,通常的做法是对传输的内容进行摘要签名,把签名串同参数一起请求API,API服务接收到请求后以同样的方式生成签名串,然后进行......
  • linux driver --- platform框架应用完整实例
    平台设备文件button_device.c#include<linux/module.h>#include<linux/init.h>#include<linux/platform_device.h>staticvoidbutton_release(structdevice*d......
  • java复制文件的4种方式及拷贝文件到另一个目录下的实例代码
    java复制文件的4种方式及拷贝文件到另一个目录下的实例代码这篇文章主要介绍了java复制文件的4种方式,通过实例带给大家介绍了java拷贝文件到另一个目录下的方法,需要的......
  • linux驱动移植-usb键盘接口驱动
    在前面的章节我们已经介绍了usb鼠标驱动的编写,并对usb摄像头驱动源码进行了分析。由于usb键盘驱动和usb鼠标驱动代码非常相似,所以这一节就粗略介绍一下usb键盘驱动的编写。......
  • 接口协议(2) - SPI
    SPI(SerialPeripheralInterface)是一种可以全双工/半双工/单工通信的接口协议,由2(单工)/3(双工)条信号线和1+条(每个从设备1条)片选信号线组成。支持MSB/LSB传输模式,支持......