blob: b407698ce4fb629fcf8f6c8d9c5ec289cf407524 [file] [log] [blame]
// 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 {
interface I {
default void doSomething(String msg) {
String name = getClass().getName();
System.out.println(name + ": " + msg);
}
static void printString(String msg) {
System.out.println(msg);
}
}
static class DefaultImpl implements I {
}
static class OverrideImpl implements I {
@Override
public void doSomething(String msg) {
String newMsg = "OVERRIDE" + msg;
System.out.println(newMsg);
}
}
private static void testDefaultMethod(I i) {
i.doSomething("Test");
}
private static void testStaticMethod() {
I.printString("I'm a static method in interface");
}
public static void main(String[] args) {
testDefaultMethod(new DefaultImpl());
testDefaultMethod(new OverrideImpl());
testStaticMethod();
}
}