AbstractOverride.java revision 0
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk/*
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk *
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * This code is free software; you can redistribute it and/or modify it
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * under the terms of the GNU General Public License version 2 only, as
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * published by the Free Software Foundation.
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk *
12e4614e16f3922c088a689a0c7a2288dd15657bPeter Major * This code is distributed in the hope that it will be useful, but WITHOUT
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * version 2 for more details (a copy is included in the LICENSE file that
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * accompanied this code).
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk *
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * You should have received a copy of the GNU General Public License version
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * 2 along with this work; if not, write to the Free Software Foundation,
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk *
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * CA 95054 USA or visit www.sun.com if you need additional information or
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * have any questions.
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk */
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk/*
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * @test
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * @bug 4929736
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * @summary Overload resolution when an abstract method overrides a concrete one
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * @author gafter
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk *
3133cf1b294fb4042826d58b24e4a2d0216d0349jeff.schenk * @compile AbstractOverride.java
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk */
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenkclass AbstractOverride {
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk static class Ex extends Exception {}
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk static class A {
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk void f() throws Ex {}
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk }
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk static abstract class B extends A {
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk abstract void f();
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk }
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk static class C extends B {
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk void f() {}
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk }
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk public static void main(String[] args) {
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk B b = new C();
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk b.f();
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk }
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk}
2feee3bd4482cbe7e4a8cf1a228bf17723b13934jeff.schenk