Skip to content

M02 · Bab 6± 45 menitDraf AI

Polymorphism

Tujuan belajar

  • Menjelaskan dynamic dispatch — method yang dijalankan ditentukan tipe runtime object
  • Membedakan tipe deklarasi dan tipe runtime, serta melakukan upcasting dan downcasting dengan aman
  • Memakai pattern instanceof untuk downcasting tanpa ClassCastException
  • Merancang kode yang bergantung pada interface sehingga mudah diganti dan dites
  • Membedakan overloading (dipilih saat kompilasi) dan overriding (dipilih saat runtime)

Prasyarat: Interface & Abstract Class

Kuis

6 soal · lulus bila minimal 70% benar

1.PaymentMethod method = new CreditCard(); — CreditCard menimpa fee(long) dari interface PaymentMethod. Versi mana yang dijalankan oleh method.fee(200_000)?
2.Class AuditLog punya record(Object) dan record(String). Apa output dari Object payload = "order dibuat"; log.record(payload);?
3.Apa hasil Object value = "INV-001"; System.out.println(value.length());?
4.Kamu ingin menulis unit test untuk CheckoutService tanpa benar-benar memanggil API payment gateway. Desain mana yang paling memudahkan?
5.Apa yang terjadi saat Object value = "INV-001"; Integer n = (Integer) value; dijalankan?
6.Parent dan Child extends Parent masing-masing punya static String type() dan method instance name() yang di-override. Apa output Parent p = new Child(); System.out.println(p.type() + " " + p.name());?

Jawab semua soal dulu (0/6)