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 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。