mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-24 09:20:53 +07:00
inherit unrelated abstract/default through hierarchy (IDEA-146070)
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
class Test1 {
|
||||
interface A {
|
||||
default void foo() { }
|
||||
}
|
||||
|
||||
abstract class B {
|
||||
public abstract void foo();
|
||||
}
|
||||
|
||||
abstract class C extends B implements A { }
|
||||
}
|
||||
|
||||
class Test2 {
|
||||
interface A {
|
||||
default void foo() { }
|
||||
}
|
||||
|
||||
interface B extends A {}
|
||||
|
||||
interface C extends A {
|
||||
default void foo() {}
|
||||
}
|
||||
abstract class D implements C, B { }
|
||||
}
|
||||
|
||||
|
||||
class Test3 {
|
||||
|
||||
interface A {
|
||||
void accept();
|
||||
}
|
||||
interface B extends A {}
|
||||
|
||||
interface C extends A {
|
||||
default void accept(){}
|
||||
}
|
||||
|
||||
class D implements B, C {}
|
||||
}
|
||||
|
||||
class Test4 {
|
||||
|
||||
interface A {
|
||||
default void accept(){}
|
||||
}
|
||||
interface B extends A {}
|
||||
|
||||
interface C extends A {
|
||||
void accept();
|
||||
}
|
||||
|
||||
<error descr="Class 'D' must either be declared abstract or implement abstract method 'accept()' in 'C'">class <error descr="Class 'D' must either be declared abstract or implement abstract method 'accept()' in 'C'">D</error> implements B, C</error> {}
|
||||
abstract class E implements B, C {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user