Java中接口里面的抽象方法没有具体定义,为啥还会有功能?是在底层实现的这些方法吗?接口和抽象类不能new对象,为啥还可以用某些静态方法返回他们的对象,这个对象有什么限制吗?

解决方案 »

  1.   

    比如说我用dom4j解析xml文件时,Document是接口,我将xml文件解析并返回了一个Document对象d,我可以直接用d的一些抽象方法,并且也能获得某种效果,那这个解析xml文件返回的Document对象是Document的实现类的对象吗?如果是,是哪个实现类呢?
      

  2.   

    返回的是Document的一个实现对象,只不过用多态的方式向上转型而已
      

  3.   

    噢噢,那么所有得到接口或抽象类的对象其实都是得到他们的实现类吗,只不过用了多态?那在哪里能看到获得的具体实现类说明呢?
    如果你是用eclipse,ctrl+鼠标,会有一个下拉选项,选中open implementation,有多个实现就会给另外一个列表
      

  4.   

    比如说我用dom4j解析xml文件时,Document是接口,我将xml文件解析并返回了一个Document对象d,我可以直接用d的一些抽象方法,并且也能获得某种效果,那这个解析xml文件返回的Document对象是Document的实现类的对象吗?如果是,是哪个实现类呢?
    会debug吗,在你那一行代码打上断点,然后F5进入实现类
      

  5.   

    噢噢,那么所有得到接口或抽象类的对象其实都是得到他们的实现类吗,只不过用了多态?那在哪里能看到获得的具体实现类说明呢?debug即可
      

  6.   

    看我的博客, 里面有kafka框架, 正好用到接口与抽象类.