Inheritance di Dart
Penjelasan
Inheritance di Dart memakai extends, subclass mewarisi field dan method dari superclass. Method yang di-override wajib ditandai @override (anotasi, bukan wajib secara sintaks tapi sangat direkomendasikan supaya compiler bisa memperingatkan kalau ada typo). Keyword super dipakai memanggil constructor/method superclass.
Contoh Konsep
class Hewan {
String nama;
Hewan(this.nama);
String bersuara() {
return "$nama mengeluarkan suara.";
}
}
class Kucing extends Hewan {
Kucing(String nama) : super(nama);
@override
String bersuara() {
return "$nama berkata Meong!";
}
}
void main() {
var kucingku = Kucing("Milo");
print(kucingku.bersuara()); // Milo berkata Meong!
}
Praktikum
Buat class Kendaraan dengan field merek (diisi lewat constructor) dan method infoMerek() yang mengembalikan "Merek: {merek}". Buat class Motor yang extends Kendaraan, override infoMerek() untuk menambahkan " (Motor)" di akhir. Buat object Motor dan tampilkan hasil infoMerek().
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Dart hanya mendukung single inheritance (satu class cuma bisa extends satu superclass) — kalau butuh berbagi perilaku dari beberapa sumber sekaligus, pakai mixin (dibahas di materi berikutnya), bukan multiple inheritance.