red5 中
public interface IScope extends IBasicScope, ResourcePatternResolver,
IServiceHandlerProvider {
  ...
}
public interface IBasicScope extends ICoreObject, IEventObservable,
Iterable<IBasicScope>, IPersistable {
...
   public String getName();
...
}public String appStart(IScope app){
  return app.getName(); //出错
}
这是为什么啊?java第一次用.哪位高手帮我一下.

解决方案 »

  1.   

    Java 中的继承只能继承一个类、抽象类或者接口,不支持多重继承
      

  2.   

    出什么错了?把错误堆栈贴一下啊。是不是NullPointerException?
      

  3.   

    是 eclipse 下提示的错误.
      

  4.   

    有点不同的看法: Java中的继承分为类的继承和接口的继承(如果说接口使用的extends不是继承的话, 那我错了)。
    接口之间的继承可以使用多继承, 而类之间的继承只能是单继承。
    类虽然只能是单继承, 但是一个类可以实现多个接口。public class Test01 implements C {
        public void print() {
            System.out.println("Print");
        }
        
        public void func() {
            System.out.println("Func");
        }    public static strictfp void main(String args[]) {
            Test01 t = new Test01();
            t.print();
            t.func();
        }}interface A {
        void func();
    }interface B {
        void print();
    }interface C extends A, B {
        
    }
      

  5.   

    是这样的。java ,c# 的类只能是单继承,而接口是多继承的。我贴出的代码前二个都是接品,后一个是这样的
    public class Application extends MultiThreadedApplicationAdapter
    {

    public String appStart(IScope app){ 
      return app.getName(); //出错 
    }   ...
    }
    在eclipse 中提示错误,我用IScope接口中的方法就没有问题,用IBaseScope中的方法就提示错误,IScope 应该继承了IBaseScope中的所有的public的方法。可是为什么eclipse会提示错误呢?难道我理解的是错误的?
      

  6.   

    public class Test01 implements C {
        public void print() {
            System.out.println("Print");
        }
        
        public void func() {
            System.out.println("Func");
        }    public static strictfp void main(String args[]) {
            Test01 t = new Test01();
            t.print();
            t.func();
        }}interface A {
        void func();
    }interface B {
        void print();
    }interface C extends A, B {
        
    }
      

  7.   

    public class Test01 implements C {
        public void print() {
            System.out.println("Print");
        }
        
        public void func() {
            System.out.println("Func");
        }    public static strictfp void main(String args[]) {
            Test01 t = new Test01();
            t.print();
            t.func();
        }}interface A {
        void func();
    }interface B {
        void print();
    }interface C extends A, B {
        
    }
      

  8.   

    public class Test01 implements C {
        public void print() {
            System.out.println("Print");
        }
        
        public void func() {
            System.out.println("Func");
        }    public static strictfp void main(String args[]) {
            Test01 t = new Test01();
            t.print();
            t.func();
        }}interface A {
        void func();
    }interface B {
        void print();
    }interface C extends A, B {
        
    }
      

  9.   

    看lz的意思,应该所有exetends后面连续出现的都为接口,问题是这样的,编译器 在编译期间是静态邦定的,只有在程序运行期间,JVM才会实现动态邦定,
    也就是说。当你用一个类或者借口的引用去调用某个方法的时候编译器首先查看你这个类中是否已经存在这个方法,如果不存在就报错,这就是所谓的静态邦定
    比如  
    一个类A中有个方法b(),然后C类继承类A,按理说C应该拥有b()方法的,但是如果你用new C().b()这样去调用编译肯定通不过的,一定要定义一个A类型的引用,然后把一个C的对象传给A的引用,这样编译期间就认为你是调用A类的b()方法,所以会通过的,但是运行期间因为这个引用指向的是一个C类型的对象,所以当然调用的就是C类中的继承来的b()方法。这就是所谓的动态邦定。
      

  10.   

    JAVA里类是单继承,类似C++的多继承是用接口实现的
      

  11.   

    出现的错误是因为没有getName方法实现的类,我加上去后就好了。
      

  12.   

    请问 ,加上什么?
    import org.red5.server.api.IBasicScope;
    这接口有getName(),可是加进去也报错,到底怎么办啊?...
      

  13.   

    原因很简单,你看源码就知道了,估计是没有把spring-core.jar包引到工程里,
    我也遇到了类似的问题,不知道你不是因为这个。