接口不实现方法,但我却在程序中可以调用接口的方法,这是为什么?
如果我两个类都实现了接口的save方法,但执行的内容不一样,我在调用接口的方法时会怎么处理?

解决方案 »

  1.   

    呵呵。看不懂嘻嘻。我这接口也没有具体实现但是我在配置文件中是把他注入了交给spring管理。我调用接口。它调用的是他实现类的方法。  没有配置的话我都是调用他的实现类的具体方法的。
      

  2.   


    接口是不能实例化的,也就是说没有提供接口的方法是无法访问到接口的方法的。不同的类可以实现同一个接口。如果我两个类都实现了接口的save方法,但执行的内容不一样,我在调用接口的方法时会怎么处理?
    如: IA a = new AI();  a.say();  //调用的是AI的say方法
         IB b = new BI();  b.say();  //调用的是BI的say方法
      

  3.   

    spring管理类的途径就是让你系根绳(让你实现它的接口),然后给系绳的统一发布命令。
    实现类(发布命令的类)是spring自己的类。
    当然他也会让你有自己的接口啥的
    如此如此
      

  4.   

    你可以在实现类里面定义自己的save逻辑,例如:
    //接口A
    public interface A {

    public void save();}
    实现类B和C
    //B类
    public class B implements A{ public void save() { System.out.println("在这里面定义B自己的业务逻辑!");

    }}
    //C类
    public class C implements A{ public void save() {
    System.out.println("在这里面定义C自己的业务逻辑!");

    }}
    //测试类TestBC
    public class TestBC {

    public static void main(String args[]) {
    A a1=new B();
    a1.save();
    A a2=new C();
    a2.save();
    }}
    //打印输出:
    在这里面定义B自己的业务逻辑!
    在这里面定义C自己的业务逻辑!
    里面涉及了面向对象思想里面的面向接口编程的思想!!呵呵!!
      

  5.   

    Interface A {
      public void fun();
    }Class B implements A {
      public void fun(){ System.out.println("B");
    }Class C implements A {
      public void fun(){ System.out.println("B");
    }A b = new B();
    A c = new C();父类引用指向子类实现。