ServletConfig是接口,这个是sun做servlet规范的时候提出的
不同的app server对这个规范有自己的实现
不管是tomcat或者是weblogic等服务器,都会对这些接口有自己的实现
你在服务器上运行的时候这些方法实际上返回的是接口的实现类

解决方案 »

  1.   

    你眼睛所能看到的,只是一个名字,一个对对象的引用而已。普通类可以定义一个名字,接口也可以定义一个名字,它们都只是引用内存中的某个对象而已。所有的类或接口都可以定义一个名字引用其子类或实现了该接口的对象。你所说的servletConfig ,实际上只是引用了服务器已经实现的一个对象(该对象实现了ServletConfig接口),也就是说,其实这个serveltConfig,其具体的类名是实现了该接口的另一个类(这个类的名字你可以通过api文档查到,也可以在运行时设置断点debug检查该接口的值),如果知道具体的类,你可以强制转换成具体的类。
    不知我这样说够详细没有。
      

  2.   

    楼主对接口的概念实在是不明确.
    接口不依托于一个实现就没有任何存在的价值.
    接口是一种实现多态的重要手段接口不可以实例化,但是实现接口的类是可以实例化的.
    举个例子
    定义一个接口
    interface Idemo
    {
     public void add(Object obj);
     public Object remove(int index);
    }实现这个接口
    class Mydemo implements Idemo
    {
     ArrayList m_List;
     public void add(Object obj)
     {
       this.m_List.add(obj);
     } public Object remove(int index)
     {
       this.m_List.remove(index);
     }
    }class MainClass

      public void do()
      {
        Idemo de =createDemo();
        demo.add(new String("HelloWorld");
        demo.remove(0);
      } 
      //实际上在createDemo方法中:
      private createDemo()
      {
        return new Mydemo();
        /*注意,我构造的其实是一个Mydemo类, 因为它实现了Idemo接口,所以我可以上述造型到Idemo,从而隐藏了Mydemo的真实类型*/
      }
    }所以实际实例化的是Mydemo, 而不是Idemo ,而调用的时候,也是调用的Mydemo.add 和Mydemo.remove.
      

  3.   

    你可以认为,Idemo de 和 MyDemo 绑定到一块了.
    Idemo 是契约, Mydemo是实现.
      

  4.   

    init(servletConfig config)是对象的引用...config是作为servletConfig对象的引用传进来的
    getServletConfig()同样也是引用
    我在这里引用紫龙的话..ServletConfig是接口,这个是sun做servlet规范的时候提出的
    不同的app server对这个规范有自己的实现
    不管是tomcat或者是weblogic等服务器,都会对这些接口有自己的实现
    你在服务器上运行的时候这些方法实际上返回的是接口的实现类
    满足ServletConfig接口的对象..
      

  5.   

    你在服务器上运行的时候这些方法实际上返回的是接口的实现类
    你可以取得它的CLASSNAME看看它的实际类型就是了.