Polymorphism (Si Bunglon) ๐ฎ
Hari ini kita masuk ke ilmu sihir tertinggi di OOP! Gimana caranya sebuah tipe data bisa berubah-ubah wujud? Dan apa hubungannya sama kemampuan Flutter ngerender ribuan tombol dengan gampang?
๐ฏ Goals Hari Ini
- Paham Polymorphism (*Dynamic Dispatch*).
- Bisa mengeksekusi banyak class berbeda sekaligus pakai Loop.
- Mendeteksi wujud asli pakai
isdanas. - Tahu kelemahan bawaan Inheritance (1 Bapak).
- Menguasai fitur Trinitas Mixin (Suntikan DNA):
mixin,with, danon.
Asal Usul Nama "Polymorphism" ๐ฆ
Dari bahasa Yunani: Poly (Banyak) dan Morph (Bentuk). Di dunia OOP, ini berarti: Sebuah variabel yang tipe datanya menggunakan class Bapak (Mandor), wujud fisik aslinya bisa berbentuk anak-anak manapun yang dia miliki!
// BUKTI POLYMORPHISM:
// Tipe Datanya = Hero (Bapak)
// Wujud Aslinya = Mage / Fighter (Anak)
Hero h1 = Mage();
Hero h2 = Fighter();
// DYNAMIC DISPATCH (Komputer tau wujud aslinya!)
h1.attack(); // Output: Bola Api!
h2.attack(); // Output: Tebasan Pedang!
// Tipe Datanya = Hero (Bapak)
// Wujud Aslinya = Mage / Fighter (Anak)
Hero h1 = Mage();
Hero h2 = Fighter();
// DYNAMIC DISPATCH (Komputer tau wujud aslinya!)
h1.attack(); // Output: Bola Api!
h2.attack(); // Output: Tebasan Pedang!
๐ฆ โก๏ธ ๐งโโ๏ธ / ๐ฅท
Wadah Bapak, Isi Anak
Variabel bertipe Hero sangat fleksibel. Komputer pada saat dijalankan (Runtime) akan menggunakan sihir *Dynamic Dispatch* untuk melihat wujud asli apa yang dimasukkan ke dalam wadah tersebut untuk menentukan efek attack-nya!