那么C中的out方法是来自类A还是接口B呢?
经调试,C是非抽象类,在public class C extends A implement B时,不会报错,得到的out方法是非抽象方法。public class C implement B extends A时会错。有趣

解决方案 »

  1.   

    什么意思?不明白。
    当然来自 A , A.out() 是个 不是抽象的,接口只是 定义了 功能,实现类应该具有这些功能,具体实现是实现类的事情。C 继承了 A 的  out , C 在外看来 , 有 out 方法,也实现了 B 中的功能。
    只要 A.out 方法 是 public 就可以直接用, 如果不是 public , 可以 覆盖 成 
    class C{
       public void out(){super.out();}
    }
      

  2.   

    public class C implement B extends A时会错。
     没有这种写法的, 
    extends 必须出现在 implements 前面。