Salah satu pilar terakhir OLP, kita berbicara tentang enkapsulasi, tentang abstraksi dan tentang pewarisan,
dan kemudian ada pilar keempat yang memiliki kata yang cukup sulit, polimorfisme.
Apa artinya?
Nah, Polly berarti banyak dan lebih.
Fiza berarti untuk banyak bentuk.
Sekarang, kita tahu bahwa metode adalah milik objek, bukan?
Kami menggunakan kata kunci diri untuk bertindak atas objek yang dipakai.
Sekarang, dengan Python, ide polimorfisme ini mengacu pada cara di mana kelas objek dapat berbagi nama metode
yang sama.
Tetapi nama-nama metha itu dapat bertindak berbeda berdasarkan objek yang memanggilnya.
Sekarang, kedengarannya sangat membingungkan, jadi mari kita lihat kodenya.
Kami memiliki panduan pengguna dan Kelas Pemanah kami.
Dan seperti yang saya sebutkan, dengan polimorfisme, kelas objek yang berbeda dapat berbagi nama
metode, jadi kami memiliki serangan di sini yang dibagikan, tetapi masing-masing melakukan sesuatu yang berbeda berdasarkan atribut.
Misalnya saat saya melakukan satu serangan wizzard.
Jadi mari kita lakukan itu.
Penyihir serangan satu titik.
Jika saya mengklik run, saya mendapatkan serangan dengan kekuatan 60 karena, yah, Wizzard memiliki arti khusus untuk serangannya
melawan Archer.
Mereka berbeda.
Jadi meskipun mereka berbagi nama metode yang sama karena objek yang memanggilnya, hasilnya
akan berbeda.
Jadi kita sebenarnya dapat melakukan sesuatu yang cukup menarik di sini, katakanlah
saya memiliki satu Wizzard dan kemudian kita juga akan memiliki satu Archer dan satu Archer adalah Robin.
Dan Robin punya waktu 30 jam sekarang.
Apa yang dapat saya lakukan di sini sebenarnya memanggil mereka dengan cara yang berbeda,
misalnya, saya dapat membuat fungsi baru yang disebut serangan pemain dalam serangan pemain ini mengambil karakter.
Dan disini kita bisa mengatakan character dot attack.
Dan sekarang jika saya menjalankan kode ini dan berkata.
Serangan pemain.
Penyihir satu.
Dan saya menjalankan ini.
Saya akan menyerang dengan kekuatan satu jika saya melakukan serangan pemain, memiliki Archer di sini, jika saya klik run.
Anda lihat bahwa fungsi yang sama memberi saya output yang berbeda, meskipun
kita memanggil hal yang sama karena objek yang kita masukkan ke dalamnya polimorfisme, cara lain untuk menunjukkan
ini adalah jika kita melakukan perulangan for, if I do for, katakanlah, karakter di dan mari tambahkan satu Wizzard dan satu Pemanah ke dalam daftar.
Dan jika saya mencetak di sini atau mari kita jalankan karakter dot attack.
Jika saya klik jalankan di sini.
Sekali lagi, saya memiliki dua keluaran yang berbeda, meskipun saya memanggil metode yang sama karena
objek yang berbeda dan ini adalah konsep yang sangat kuat, benar, karena kami dapat menyesuaikan
ini sesuai dengan kebutuhan khusus kami, bahkan jika, katakanlah pengguna mengalami serangan.
Metode dan metode serangan default ini, katakanlah print tidak melakukan apa-apa karena hanya pengguna.
Bahkan jika saya menjalankan ini, katakanlah print wizard one.
Dan katakanlah dot attack, jika saya klik, jalankan.
Itu akan menimpa apa pun serangan aslinya, karena kita sudah memiliki metode itu di kelas penyihir
kita.
Tapi katakanlah saya ingin Yuzu dan Wizzard menjalankan metode serangan, bagaimana saya bisa melakukan ini?
Sekarang, ini adalah sesuatu yang akan kita jelajahi lebih jauh di video berikutnya, tetapi untuk saat ini saya dapat
mengatakan pengguna dot attack.
Dan memberikannya sendiri.
Karena saya menerima pengguna sebagai parameter saya di sini.
Dan kemudian saya Camron, pengguna dot attack.
Jadi mari kita lihat apa yang terjadi di sini jika saya mengklik run.
Saya tidak melakukan apa-apa dan menyerang dengan kekuatan 60.
Jadi polimorfisme memungkinkan kita untuk memiliki banyak bentuk, itu adalah kemampuan untuk mendefinisikan kembali metode untuk kelas turunan ini
yaitu Wizard dan Archer.
Dan objek yang diinstansiasi dapat berperilaku dalam bentuk yang berbeda dengan cara yang berbeda, berdasarkan polimorfisme.
Dan ini berguna karena kami dapat memodifikasi kelas kami untuk kebutuhan khusus kami.
Tetapi juga tidak perlu mengulangi diri kita sendiri jika kita ingin menggunakan sesuatu seperti serangan dari pengguna di dalam
Wizard.
Jadi begitulah, empat pilar enkapsulasi OPIS.
Abstraksi.
Warisan dan akhirnya, polimorfisme.
Sekarang, tidak ada jumlah video atau buku yang akan mengajari Anda dengan tepat kapan harus menggunakan apa.
Idenya di sini adalah untuk memahami bahwa kekuatan ini ada dengan OLP.
Anda tidak akan pernah mengatakan, oh, saya perlu menerapkan polimorfisme.
Tidak, sebagian besar waktu Anda hanya mengkode dan kebetulan Anda mengkode dengan cara yang
menekankan polimorfisme.
Ini hanya kekuatan OLP, meskipun ini adalah kata-kata besar, pada akhirnya, kami telah belajar
bagaimana menggunakannya untuk menyusun kode kami dengan cara yang efisien dan bersih.
Dan itulah intinya.
Ini semua tentang mengatur kode kita.
Nah, beberapa dari Anda mungkin sedikit bingung ketika saya melakukan serangan titik pengguna ini sendiri di video berikutnya, saya ingin menjelajahi
ini sedikit lebih banyak.
Sampai jumpa di yang itu.