mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-16 00:21:32 +00:00
- base class method wins against a (default) interface method, so an abstract base class method should always be implemented in a derived class; - interface methods clash regardless of abstract/default with possibly undefined behavior at run-time, so a class or interface should always define its own method for methods inherited from multiple interfaces and not from base class; - meaningful diagnostics for class inheriting conflicting JVM signatures. Since no override will happen under Java 8 rules, ACCIDENTAL_OVERRIDE is misleading for this case; - update testData.
24 lines
279 B
Kotlin
Vendored
24 lines
279 B
Kotlin
Vendored
package test
|
|
|
|
interface A {
|
|
public val c: String
|
|
get() = "OK"
|
|
}
|
|
|
|
interface B {
|
|
private val c: String
|
|
get() = "FAIL"
|
|
}
|
|
|
|
open class C {
|
|
private val c: String = "FAIL"
|
|
}
|
|
|
|
open class D: C(), A, B {
|
|
val b = c
|
|
}
|
|
|
|
fun box() : String {
|
|
return D().c
|
|
}
|