NE丶Passion 2017-08-10 02:59 采纳率: 33.3%
浏览 3222

java中的 interface 到底是什么?

万物既然都是对象.
interface是如何继承Object类的呢???

当然有人在网上说他不继承Object.OK 那么请看一段代码
在spring中 我写了一个简单接口
public interface A{
public void run();
}
public class B implments A{
public void run(){
------dosomthing----
}
}
我在xml里面配置好了

最后我做一下测试
ApplicationContext ac=new classPathXmlApplication("bean.xml");
注意!就在这里
A a=ac.getBean(A.class);
a.run();
这个接口竟然生成了 class文件!而且在编译期间就不会报错.
程序还会依然执行!!!!
(PS:这个写法只支持一个bean一个接口)

求大师解惑 接口到底是什么? getBean底层到底是如何实现的这段代码?

  • 写回答

8条回答 默认 最新

  • Tsui丶 2017-08-10 03:11
    关注

    接口可以实例化
    一般对象比如有个具体的类Person已定义好,要实例化它, 采取的语法是 Person objPerson = new Person();
    但接口(如IConnection)不能这么做,其不能直接New 自己,如 IConnection objIConnection = new IConnection(),
    这就是说"照例不可以生成接口的对象"的含义.
    但面向对象都具有多态,可以向上转型, 比如某个类实现了该接口,如类Connection实现了该接口,则Connection类的
    实例化对象可以给IConnection接口. 如 IConnection objIConnection = new Connection()
    然后编程都基于接口进行操作,这样脱离了具体的类的实现,在某些场合就更灵活和易于扩充.
    把变的东西抽象出来了,成了接口,反倒就让代码相对固定了,能适应变化的情况.
    接口不能实列化,但是可能通过某些类创建接口的对类
    看上面所说接口不能实例化,这是不容置疑的
    只是可以这样用:
    实例化对象可以给IConnection接口. 如 IConnection objIConnection = new Connection()
    接口不可以实例化。但是接口对象可以指向它的实现类对象。

    评论

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用