Modul ini melanjutkan OOP dari kelas dan objek menuju hubungan antarkelas. Pewarisan, overriding, dan polimorfisme dipraktikkan lewat extends, dynamic dispatch, dan kelas abstrak, lengkap dengan kontrak equals dan hashCode yang menopang collections. Bagian akhir merapikan pemeriksaan tipe dengan pattern matching, menimbang komposisi sebagai alternatif pewarisan, dan menutup hierarki kelas dengan sealed class. Setelah modul ini selesai, kelas dapat disusun menjadi hierarki yang jelas batasnya, ditutup bila perlu, dan tetap mudah diperluas.
OOP II: Pewarisan dan Polimorfisme
Pewarisan, overriding, polimorfisme, kelas abstrak, kontrak equals dan hashCode, serta sealed class.
0/0 selesai
- Pewarisan
Mewariskan kelas dengan extends, memanggil super, dan menelusuri rantai konstruktor.
- Overriding Metode
Mengganti perilaku metode induk dengan @Override, memahami kovariansi, dan membedakan hiding dari overriding.
- Polimorfisme
Memanfaatkan upcasting dan dynamic dispatch untuk merancang program terhadap tipe dasar.
- Kelas dan Metode Abstrak
Menetapkan kontrak parsial lewat kelas abstrak dan mengetahui kapan kelas biasa tak lagi memadai.
- Kontrak equals dan hashCode
Menerapkan equals dan hashCode yang simetris dan konsisten karena collections bergantung pada keduanya.
- instanceof dan Pattern Matching
Memeriksa tipe objek dengan instanceof dan merapikannya dengan pattern matching Java 16.
- Komposisi vs Pewarisan
Menimbang komposisi dan pewarisan dalam desain serta memahami mengapa komposisi lebih sering unggul.
- Sealed Class
Membatasi hierarki kelas dengan sealed class Java 17 agar switch dan analisis desain menjadi ekshaustif.