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 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题