考慮事項:
abstract class Base {
def something() = println("Base")
}
trait TraitA extends Base {
abstract override def something() = { super.something(); println("TraitA"); }
}
class Child extends Base {
override def something() {
println("Child")
}
}
その後:
val x = new Child with TraitA
x.something()
私は得る:
Child
TraitA
しかし、私が使用する場合:
class Child extends Base with TraitA {
override def something() {
println("Child")
}
}
val x = new Child
x.something()
私が得るのは:
Child
では、建設現場または申告現場で特性を使用することの違いは何ですか?クラスの宣言でトレイトを拡張/使用しながら、最初の動作(スタック可能なトレイト)を使用できますか?