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`.