| // Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file | 
 | // for details. All rights reserved. Use of this source code is governed by a | 
 | // BSD-style license that can be found in the LICENSE file. | 
 |  | 
 | public class DebugInterfaceMethod { | 
 |  | 
 |   static class DefaultImpl implements InterfaceWithDefaultAndStaticMethods { | 
 |   } | 
 |  | 
 |   static class OverrideImpl implements InterfaceWithDefaultAndStaticMethods { | 
 |  | 
 |     @Override | 
 |     public void doSomething(String msg) { | 
 |       String newMsg = "OVERRIDE" + msg; | 
 |       System.out.println(newMsg); | 
 |     } | 
 |   } | 
 |  | 
 |   private static void testDefaultMethod(InterfaceWithDefaultAndStaticMethods i) { | 
 |     i.doSomething("Test"); | 
 |   } | 
 |  | 
 |   private static void testStaticMethod() { | 
 |     InterfaceWithDefaultAndStaticMethods.printString("I'm a static method in interface"); | 
 |   } | 
 |  | 
 |   public static void main(String[] args) { | 
 |     testDefaultMethod(new DefaultImpl()); | 
 |     testDefaultMethod(new OverrideImpl()); | 
 |     testStaticMethod(); | 
 |   } | 
 |  | 
 | } |