Trait di Scala
Penjelasan
Trait mirip interface di bahasa lain, tapi lebih fleksibel — trait BISA punya implementasi method default (tidak cuma deklarasi kosong), dan satu class bisa "mencampur" (mix in) beberapa trait sekaligus dengan `extends` (trait pertama) dan `with` (trait berikutnya).
Contoh Konsep
trait BisaBerenang {
def berenang(): String = "Sedang berenang"
}
trait BisaTerbang {
def terbang(): String = "Sedang terbang"
}
class Bebek extends BisaBerenang with BisaTerbang
val bebek = new Bebek()
println(bebek.berenang()) // "Sedang berenang"
println(bebek.terbang()) // "Sedang terbang"
Praktikum
Buat trait BisaMenyala dengan method nyalakan() dan trait BisaMeredup dengan method redupkan(), lalu buat class Lampu yang mencampur (mix in) keduanya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Karena trait bisa dicampur berkali-kali (`extends A with B with C`), trait adalah cara Scala meniru multiple inheritance secara aman, tanpa masalah ambiguitas class C++ tradisional.