← Kembali ke kursus
Pelajaran kursus · Dart
Pelajaran 28

Class modifier (Dart 3)

BARU Dart 3: abstract, base, final, sealed, interface, mixin class.

Pahami konsepnya

Class modifiers mengontrol bagaimana class digunakan: abstract (tak bisa instansiasi), base (harus di-extends, tak bisa implements), final (hanya bisa extends di library yang sama), interface (hanya bisa implements), sealed (subkelas tertutup untuk switch exhaustiveness), mixin class (bisa dipakai sebagai mixin DAN class).

Coba contoh kode

sealed class Bentuk {}
class Persegi extends Bentuk { final double sisi; Persegi(this.sisi); }
class Lingkaran extends Bentuk { final double r; Lingkaran(this.r); }

double luas(Bentuk b) => switch (b) {
  Persegi(sisi: var s) => s * s,
  Lingkaran(r: var r) => 3.14159 * r * r,
};

void main() {
  print(luas(Persegi(4)));
  print(luas(Lingkaran(7)));
}

sealed Bentuk membatasi subkelas hanya ke Persegi dan Lingkaran — switch menjadi exhaustive (compiler memastikan semua kasus tercakup).

Latihan singkat

Uji: sealed class + switch — luas(Persegi(4)) harus `16`.