Ad çakışmaları olduğunda, bir derleme zamanı hatası alırsınız. D
varsayarsak uygulayan sınıftır:
class D extends A with C with B
def main(args: Array[String]): Unit = {
val d = new D
println(d.print())
}
Göreceksin: Biz D
bir override print()
ekleyerek derleyici yardım ederse, Ancak
Error:(25, 9) class D inherits conflicting members:
method print in trait B of type()Unit and
method print in trait C of type()Unit
(Note: this can be resolved by declaring an override in class D.)
class D extends A with B with C
ve super.print()
çağırttırma, bu yazdırılır bir print
yöntem yani destekleyen linage son özellik:
trait A { }
trait B { def print() = println("hello") }
trait C { def print() = println("world") }
class D extends A with B with C {
override def print(): Unit = super.print()
}
Biz alırdım "dünya" . Biz B
ve C
geçiş yaptıysanız:
class D extends A with C with B {
override def print(): Unit = super.print()
}
Biz "Merhaba" iyi olur.
Sadece açık olabileceğinizi ekledim: 'D sınıfı A ile B'yi uzatır C {defride def print(): Birim = süper [B] .print()} '. –