如果继承某一个接口就必须实现里面的所有方法。
可是我的类中怎么用里面的方法啊?直接new个对象就能用吗?那么new谁的对象?
希望详解,举个例子最好了谢谢![/color][/color][/size]

解决方案 »

  1.   

    接口里面的方法你使用的时候你new 的是实现他的那个类得对象
      

  2.   

    没看明白LZ的问题,给LZ段小代码,Lz看看是哪里不清楚?
    interface Ia {
        void m1();
    }interface Ib extends Ia {
        void m2();
    }class A implements Ia {
        public void m1() {System.out.println("A:m1");}
    }class B implements Ib {
        public void m1() {System.out.println("B:m1");}
        public void m2() {System.out.println("B:m2");}
    }class Test {
        public static void main(String[] args) {
            Ia ia = new A();
            ia.m1();
            
            Ia iab = new B();
            iab.m1();        Ib ib = (Ib)iab;
            ib.m2();
        }
    }
      

  3.   

    java 中的接口其实就是给 不同类之间抽象出来统一的部分, 想想 继承的时候可以呈现出多态 ,那么其实运用接口也可以实现多态。接口中定义的方法就相当于提供服务任何实现该接口的类就相当于提供该服务 看我下面的代码你就明白了
    package InterfaceDemo;public interface SayHello {
    void sayHello();}
    package InterfaceDemo;public class Cat implements SayHello{ @Override
    public void sayHello() {
    System.out.println("miaomiao");

    }}package InterfaceDemo;public class Dog implements SayHello{ @Override
    public void sayHello() {
    System.out.println("wang wang ~~");

    }
    }
    package InterfaceDemo;public class Test {
    public static void main(String [] args){
    Cat cat=new Cat();
    cat.sayHello();

    Dog dog=new Dog();
    dog.sayHello();

    SayHello catSayHello=new Cat();
    catSayHello.sayHello();

    SayHello dogSayHello=new Dog();
    dogSayHello.sayHello();
    }}
    miaomiao
    wang wang ~~
    miaomiao
    wang wang ~~
      看看结果 明白了?你可以对照着书看看向上转型,其实接口和继承是差不多的。 你可以声明为接口类型, 也可以声名为对象自己的类型 。如果你关心的只是接口提供的方法 就可以向上转型提供多态机制,否则可以声明为对象类型。
    求分~~~
      

  4.   


    你new对象的时候用接口名字new能行吗?
      

  5.   

    #7的你那段代码我运行了可以通过,为什么可以这样new对象啊?第一次见,我是菜鸟,请指教啊!
      

  6.   


    你运行一下八楼的例子,别说你运行都通过不了? 
    SayHello say =new Cat();
    这里SayHello 称为引用类型, Cat则是对象的实际类型,由于java是动态解析的,所以就有了多态机制,就是向上转型  。此处 SayHello 就相当于父类型,Cat相当于子类型,具体涉及到虚拟机的解析过程,我的日志里写了一下你可以看看。   这和类继承差不多 ,接口可以为不相关的类抽象出共同的服务,以实现多态机制。 还不懂的话就快去看书吧回答了你也听不明白
      

  7.   

    接口是类型, 实现了接口的类可以看成该接口的子类型。 这样, 实例化的类可以赋值给接口引用, 就像子类实例可以赋值给基类引用一样A.javapublic interface A {
        void f();
    }AImp.java
    public class  AImp {
        public void f() { System.out.println("AImp"); }
    }Tester.java
    public class Tester {
        public static void main(String[] args)
        {
            A a = new AImp();
            a.f();
        }

      

  8.   


    你不能 new 接口, 只能 new 一个实现了接口的类的实例, 然后将这个实例赋值给接口引用
    比如 A { void fun(); }, B implements A. 那么  A a = new B(); a.fun(); 
      

  9.   

     纠正一下:
    public class AImp implements A {
      

  10.   

    看看吧。大一时整理的http://lavenders.tk/?post=5
      

  11.   

    7楼的代码public static void main(String[] args) {
            Ia ia = new A();
            ia.m1();
            
            Ia iab = new B();
            iab.m1();        Ib ib = (Ib)iab;
            ib.m2();
    这么写Ia ia=new A();是什么意思?
      

  12.   

    额。这里给你贴个代码吧。
    public interface A(){
    void f();
    }
    public class Aa() implements A{
    public void f(){}
    public static void main(String[] args){
    A a = new Aa();//这里是创建借口引用指向实例对象。(涉及向上转型)
    Aa b = new Aa();//这里就是正常声明了。
    }
    }