/* * @test /nodynamiccopyright/ * @bug 6987475 * * @summary Order of declarations affects whether abstract method considered overridden * @compile/fail/ref=T6987475neg.out -XDrawDiagnostics T6987475neg.java */ class T6987475neg { static abstract class Base<A> { public void go(String s) { } public abstract void go(A a); } static abstract class BaseReverse<A> { public abstract void go(A a); public void go(String s) { } } static abstract class Sub<A> extends Base<A> { public abstract void go(A a); } static abstract class SubReverse<A> extends BaseReverse<A> { public abstract void go(A a); } static class Impl1 extends Sub<String> { } static class Impl2 extends SubReverse<String> { } }