fork download
  1. interface A{
  2. void fun();
  3. }
  4.  
  5. interface B extends A{
  6. default void fun(){
  7. System.out.println("B");
  8. }
  9. }
  10.  
  11. interface C extends A{
  12. default void fun(){
  13. System.out.println("C");
  14. }
  15. }
  16.  
  17. class D implements B, C{
  18. public void fun(){
  19. System.out.println("D");
  20. B.super.fun();
  21. C.super.fun();
  22. }
  23. }
  24.  
  25. class E implements B{}
  26.  
  27. class AB {
  28. public void fun(){
  29. System.out.println("inside AB");
  30. }
  31. }
  32. class F extends AB implements C{} // class AB and interface C have fun() method, but priority is given to class method implementation
  33.  
  34. class Ideone
  35. {
  36. public static void main (String[] args)
  37. {
  38. D d = new D();
  39. d.fun();
  40.  
  41. E e = new E();
  42. e.fun();
  43.  
  44. F f = new F();
  45. f.fun();
  46. }
  47. }
Success #stdin #stdout 0.08s 54592KB
stdin
Standard input is empty
stdout
D
B
C
B
inside AB