Inheritance di Swift
Penjelasan
Inheritance HANYA berlaku untuk class di Swift, bukan struct (salah satu alasan utama kenapa Swift membedakan keduanya). Class turunan (subclass) mewarisi property dan method dari class induk (superclass) lewat sintaks : NamaSuperclass. Method yang boleh di-override wajib ditandai override di subclass-nya, dan keyword super dipakai untuk memanggil constructor/method milik superclass.
Contoh Konsep
class Hewan {
var nama: String
init(nama: String) {
self.nama = nama
}
func bersuara() -> String {
return "\(nama) mengeluarkan suara."
}
}
class Kucing: Hewan {
override func bersuara() -> String {
return "\(nama) berkata Meong!"
}
}
let kucingku = Kucing(nama: "Milo")
print(kucingku.bersuara()) // Milo berkata Meong!
Praktikum
Buat class Kendaraan dengan property merek (diisi lewat init) dan method infoMerek() yang mengembalikan "Merek: {merek}". Buat class Motor yang : Kendaraan, override method infoMerek() untuk menambahkan kata " (Motor)" di akhir. Buat instance Motor dan tampilkan hasil infoMerek().
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Karena struct TIDAK bisa diwarisi, Swift lebih sering memakai protocol (dibahas di materi berikutnya) untuk berbagi perilaku antar struct — inheritance class tetap dipakai, tapi lebih terbatas dibanding bahasa OOP tradisional.