Study
Scala

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.

Editor Latihan

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.