Jadi kita telah berbicara tentang enkapsulasi, tentang abstraksi, bagaimana dengan pilar harapan ketiga,
yang disebut pewarisan dan pewarisan memungkinkan objek baru untuk mengambil properti dari objek yang ada sehingga Anda
dapat mewarisi kelas.
Mari kita lihat sebuah contoh.
Mari kita hapus kode sebelumnya yang kita miliki dan kembali ke contoh permainan kita.
Kami ingin membuat game baru dan kami memiliki tipe pengguna yang berbeda, jadi kami memiliki pengguna yang bisa
menjadi penyihir, bisa peri, bisa, saya tidak tahu, pemanah.
Tetapi semua pengguna ini memiliki beberapa fungsi umum.
Dan masing-masing sub pengguna, seperti penyihir, elf, pemanah, memiliki beberapa fungsi bersama yang sama, tetapi sekali
lagi, serangan mungkin berbeda.
Jadi dengan menggunakan OLP, kita sebenarnya bisa melakukan pewarisan.
Misalnya, katakanlah kita memiliki pengguna kelas di sini dan pengguna ini akan memiliki, katakanlah, fungsi penandatanganan.
Atau metode Sinon, sekali lagi, itu akan menerima diri dan kemudian kita akan berasumsi bahwa kita memiliki
semacam tanda di sini.
Jadi katakan saja untuk saat ini, print login, karena untuk bermain game, mereka harus login.
Oke, sekarang Anda mungkin bertanya-tanya, oh, di mana metode init di sini?
Bukankah seharusnya kita memiliki metode init yang dijalankan terlebih dahulu?
Ya, kita bisa, tetapi jika kita tidak memiliki variabel atau atribut apa pun yang ingin kita tetapkan kepada pengguna, dalam hal
ini kita memerlukan kebutuhan dan metode.
Jadi untuk saat ini, kami hanya akan mengatakan bahwa kami tidak memerlukan apa pun yang dimiliki pengguna selain metode
masuk ini.
Sekarang, katakanlah kita ingin membuat sekelompok subclass sehingga kita memiliki wizzard kelas.
Dan untuk saat ini, kami hanya akan melakukan pass di sini sehingga kami tidak memiliki kelas yang kosong, tetapi itu masih memungkinkan kami
untuk membangunnya.
Dan kemudian katakanlah kita juga memiliki kelas.
Archer, itu akan melewatinya juga.
Saya akan memastikan kami memiliki tanda kurung di sini.
Sekarang, inilah masalahnya.
Idealnya, semua penyihir dan pemanah ini adalah pengguna juga, bukan?
Jadi kami memiliki pengguna.
Dan para pengguna ini dapat memiliki banyak bentuk, mereka bisa menjadi penyihir, mereka bisa menjadi pemanah.
Mereka bisa menjadi raksasa, semua karakter dalam game kami.
Tetapi semuanya, katakanlah, harus masuk terlebih dahulu, bagaimana kita bisa memastikan bahwa semua pengguna atau kelas
ini juga memiliki akses untuk masuk?
Nah, kita bisa menggunakan pewarisan dan cara melakukan pewarisan cukup mudah, sebenarnya, yang kita lakukan hanyalah
mengoper kelas induk yang ingin kita warisi dalam tanda kurung.
Jadi katakanlah saya melakukan yuzu di sini.
Sekarang, mari kita klik run here.
Tidak ada kesalahan.
Semuanya terlihat bagus.
Dan omong-omong, Anda melihat garis hijau di sini memberi tahu saya bahwa lekukan bukan kelipatan empat karena
lekukan harus empat di Python.
Jadi kita hanya bisa melakukan ini.
Tapi saya suka membuatnya lebih kecil agar lebih mudah dibaca.
OK, jadi mari kita membuat instance kelas di sini, saya akan membuat kelas wizard dan kemudian mengatakan.
Wizard dan jalankan kelas wizard itu.
Sekarang, jika saya mencetak di sini dan saya melakukannya, katakanlah wizard cetak.
Jika saya klik, jalankan.
Saya melihat bahwa objek wizard telah dibuat, dan bagaimana jika saya tidak masuk?
Saya melihat bahwa ya, itu sebenarnya ada jika saya masuk dan klik jalankan.
Hei, aku login.
Betapa kerennya saya mewarisi fungsi ini dari kelas pengguna.
Dan ini sangat, sangat kuat karena sekarang saya dapat memperpanjang Wizzard saya, kan,
jadi katakanlah penyihir ini memiliki bawaan.
Metode.
Yang akan dijalankan saat wizard dibuat dan akan memiliki a.
Nama.
Dan kekuatan yang kita dapatkan.
Dan di sini, kami akan menetapkan nama diri untuk nama yang sama dan kemudian kekuatan otodidak untuk kekuatan yang sama.
Dan mari tambahkan juga metode lain.
Menyebutnya serangan.
Dan metode serangan ini hanya akan mencetak string F.
Itu akan mengatakan.
Menyerang dengan.
Kekuatan dari.
Katakanlah kekuatan otodidak.
Dan kemudian kita akan melakukan hal yang sama untuk Archer, jadi saya akan menyalin kode ini.
Ditempel di sini dan Pemanah akan memiliki nama.
Dan katakanlah alih-alih kekuatan, kami akan mengatakan bahwa itu katakanlah.
Jumlah Harrow.
Dan jumlah anak panah.
Akan menjadi atribut baru yang didapatnya dan kemudian serangan itu akan, yah, menyerang dengan panah.
Dan kemudian kita akan memiliki panah yang tersisa.
Panah kiri hanya akan mengatakan jumlah kesalahan dan kita dapat melakukan sesuatu yang menyenangkan di mana panah berkurang setiap kali
Anda menyerang.
Oke, jadi sekarang kita punya ini, mari kita buat ini sedikit lebih kecil, supaya Anda bisa melihatnya.
Ini dia.
Sekarang kita memiliki ini, mari kita buat contoh Schwyzer pertama.
Dengan.
Sebut saja Maalin dengan kekuatan 50.
Dan kemudian pemanah.
Kami akan dipakai.
Seperti Robin dengan, katakanlah, lima ratus pahlawan atau kurang dari seratus jam.
Jadi sekarang penyihir dan Pemanah akan memilikinya.
Yah, mereka akan memiliki tanda masuk.
Tetapi mereka juga akan memiliki serangan, tetapi unik untuk individu mereka.
Kelas.
Dan mereka juga akan memiliki properti yang berbeda.
Mari kita lihat apakah saya akan melakukan Wizard Dot.
Bapak. Penyihir.
satu titik.
Dan saya akan mengatakan.
Menyerang.
Dan biarkan aku berbalik.
Kecerdasan kode saya.
Kita akan melihat bahwa kita memiliki beberapa kesalahan.
Di sini, apa artinya, nama diri tidak terdefinisi, dan itu karena saya lupa diri dan tanda kurung.
Jadi ingatlah kita selalu harus memberikan parameter pertama diri.
Jika kita gulir ke bawah dan kita pergi ke Wizard Dot, kita melihat bahwa kita memiliki nama, kekuatan dan serangan.
Jika saya mengklik serang di sini dan saya lari.
Kami melihat bahwa saya menyerang dengan kekuatan 50 jika saya melakukan serangan satu titik pemanah.
Kalau begitu, aku akan menyerang dengan panah, panah tersisa seratus.
Tetapi keduanya memiliki fungsi masuk pada saat yang bersamaan.
Betapa kerennya ini adalah kekuatan warisan.
Kami menjaga kode kami tetap kering, benar, kami mengabstraksi bagian dari kode yang mereka berdua bagikan,
tetapi kemudian mengubah hal-hal sesuai dengan apa yang dibutuhkan masing-masing.
Jadi, misalnya, saya dapat memiliki metode dan properti yang berbeda di Wizzard daripada Archer, tetapi
juga memiliki fungsionalitas pengguna pengguna bersama yang mereka miliki dan cara ini membuat kodenya tetap teratur dan bersih.
Sekarang, mari kembalikan zoom agar Anda dapat melihatnya dengan jelas.
Sekarang, gagasan tentang pewarisan ini benar-benar kuat.
Dan kuncinya di sini adalah kita memiliki kelas pengupas dan kelas anak-anak.
Sekarang, terkadang kelas anak-anak ini disebut subkelas atau kelas turunan karena mereka adalah subkelas pengguna
atau turunan dari kelas pengguna.
Mari kita jelajahi topik ini sedikit lebih banyak di video berikutnya.