‫Dalam pelajaran ini, Anda akan mempelajari perbedaan penting antara kelas aset dan antarmuka saat merancang
‫aplikasi.
‫Penting untuk mengetahui kapan harus menggunakan kelas abstrak dan kapan menggunakan antarmuka dan kapan tidak menggunakan keduanya.
‫Kelas dan antarmuka abstrak tampak serupa dalam beberapa hal, tetapi ada perbedaan utama yang akan
‫menentukan pilihan terbaik untuk apa yang ingin Anda capai.
‫Memahami perbedaan antara kelas abstrak dan antarmuka sangat penting, sehingga kita dapat merancang
‫aplikasi yang digabungkan secara longgar dan dapat diperluas sehingga aplikasi yang dapat kita modifikasi dan ubah
‫dengan mudah tanpa merusak segalanya.
‫Kami akan membahas perbedaan itu dan bagaimana memutuskan kapan harus menggunakan yang mana dalam video ini.
‫Tetapi sebelum kita melakukannya, pertama-tama, mari kita segarkan kembali ingatan kita tentang kelas dan antarmuka abstrak.
‫Jadi pertama, kelas abstrak dan kelas abstrak adalah kelas yang tidak lengkap atau kelas yang tidak dapat diinstansiasi, yang berarti kita
‫tidak dapat membuat objek darinya.
‫Tujuan dari kelas abstrak adalah untuk menyediakan cetak biru untuk kelas turunan dan untuk menetapkan beberapa aturan seperti apa
‫yang harus diterapkan oleh kelas turunan.
‫Tetapi mengapa kita membutuhkan kelas untuk ditandai sebagai kelas abstrak untuk memulai?
‫Apa yang salah dengan kelas reguler?
‫Bayangkan kita memiliki sepeda motor kelas dan mobil kelas dan mereka berbagi beberapa fungsi untuk mengurangi redundansi
‫kode.
‫Kami membuat kelas dasar yang disebut Vehicle untuk mencegah pembuatan instance tipe kendaraan dan untuk menerapkan setiap
‫metode untuk mengimplementasikan versi metode kendaraan mereka.
‫Kita harus menandainya sebagai kelas abstrak.
‫Kita dapat memanfaatkan kelas abstrak untuk merancang komponen dan menentukan beberapa tingkat fungsionalitas umum yang
‫harus diimplementasikan oleh kelas yang tepat.
‫Jadi mari kita buat kendaraan ini abstrak dan ini akan baik-baik saja.
‫Sekarang mari kita lihat antarmuka sekali lagi.
‫Jadi antarmuka adalah kontrak dan hanya dapat berisi deklarasi metode.
‫Itu tidak dapat berisi definisi metode.
‫Mereka mendefinisikan kemampuan yang dimiliki kelas.
‫Mari kita bayangkan kita memiliki tiga kelas.
‫Jadi kita punya kelas, sepeda, motor dan mobil.
‫Dan kemudian kami ingin memastikan bahwa semua kelas ini mewarisi dari kendaraan kelas ini.
‫Dan jika Anda ingin menambahkan fungsi self-driving ke mobil kami, misalnya, dan kami ingin membuat
‫kelas lain, misalnya, yang mungkin membuat sesuatu seperti pesawat terbang, tidak masuk akal untuk menambahkan fungsi
‫self-driving ke kendaraan kelas terbaik karena tidak semua subkelas kami akan memiliki fitur
‫ini.
‫Akan lebih mudah untuk menambahkannya dalam bentuk antarmuka yang disebut AI self-driving.
‫Kemudian kelas-kelas yang mengimplementasikan antarmuka ini dapat memberikan logika untuk mencapainya.
‫Sekarang, mari kita bicara tentang kesamaan antara antarmuka dan kelas abstrak, baik antarmuka dan
‫kelas abstrak dapat dipakai.
‫Itu berarti kita tidak dapat membuat objek dari mereka.
‫Tetapi keduanya mendukung polimorfisme, artinya kita dapat menyimpan objek bertipe cad dalam variabel bertipe,
‫abstract class animal.
‫Hal yang sama berlaku untuk antarmuka di mana kita dapat menyimpan koleksi apa pun seperti daftar atau tumpukan dalam variabel
‫enumerable Tipe II.
‫Jadi sekarang mari kita lihat perbedaan utamanya.
‫Kelas abstrak dirancang untuk diwarisi oleh subkelas yang mengimplementasikan atau mengganti metodenya.
‫Dengan kata lain, kelas abstrak diimplementasikan sebagian atau tidak diimplementasikan sama sekali.
‫Di sisi lain, antarmuka tidak diimplementasikan sama sekali.
‫Maka kelas abstrak tidak dapat memiliki konstruktor yang berlawanan dengan itu.
‫Kelas abstrak dapat memiliki konstruktor dan bidang serta definisi metode, dan implementasinya
‫akan menjadi tanggung jawab kelas yang mengimplementasikan antarmuka.
‫Di sisi lain, kelas abstrak mungkin berisi metode, definisi dan bidang dan antarmuka tidak memiliki konstruktor, seperti
‫yang kami sebutkan, mereka juga tidak dapat memiliki bidang.
‫Jadi sekarang kelas dapat mengimplementasikan banyak antarmuka, yang merupakan cara untuk mencapai semacam pewarisan multi.
‫Karena teashop adalah bahasa pewarisan tunggal dan tidak mengizinkannya secara default.
‫Namun, sebuah kelas hanya dapat mewarisi satu kelas.
‫Jadi jika sebuah kelas mengimplementasikan sebuah antarmuka, ia harus mengimplementasikan semua anggotanya, seperti properti,
‫metode, dan sebagainya, sebaliknya, ketika sebuah kelas memperluas kelas abstrak, ia
‫harus mengimplementasikan anggota abstraknya saja sehingga mereka tahu bagian yang tidak diimplementasikan dari kelas abstrak.
‫Mari kita lihat analogi di sini.
‫Bayangkan editorial instruktur yang tajam adalah Anda di mana instruktur tidak dapat mencapai apa pun kecuali dia ahli dalam
‫suatu topik atau dia ahli dalam suatu topik karena kita tidak dapat memiliki contoh kelas abstrak.
‫Jadi seorang instruktur perlu menjadi ahli dalam suatu topik untuk mengajarkannya.
‫Jadi instruktur menjadi ahli C sharp dan sekarang dia bisa mengajar sharp ini di beberapa titik instruktur C
‫sharp harus mengedit video, meskipun tidak semua instruktur perlu melakukan hal yang sama.
‫Jadi kami menerapkan editor video antarmuka I agar ini berfungsi.
‫Jadi tidak semua instruktur harus bisa mengedit, tapi yang mengimplementasikan editor video ini
‫harus bisa.
‫Baiklah.
‫Satu, jika Anda memilih pewarisan daripada antarmuka saat mendesain kelas toko C, perpustakaan akan menggunakan kelas
‫tambahan.
‫Jika Anda memiliki beberapa fungsi yang Anda inginkan, itu adalah subkelas yang harus dimiliki.
‫Misalnya, jika Anda memiliki satu set fungsi, Anda ingin subkelas menempatkannya di kelas
‫abstrak.
‫Kelas abstrak digunakan ketika kelas turunan berbagi properti inti dan perilaku kelas abstrak,
‫jenis perilaku yang benar-benar mendefinisikan antarmuka pengguna kelas.
‫Jika Anda menginginkan kontrak umum pada perilaku atau fungsionalitas, antarmuka biasanya longgar dibandingkan dengan
‫kelas abstrak.
‫Anda tidak ingin menggunakan antarmuka dalam situasi di mana Anda terus-menerus menulis kode yang sama
‫untuk semua metode antarmuka.
‫Menggunakan kelas abstrak dan mendefinisikan setiap metode satu kali.
‫Jadi ringkasan cepat.
‫Ketika kita berbicara tentang kelas abstrak, kita mendefinisikan karakteristik tipe objek yang menentukan apa
‫itu objek.
‫Ketika kita berbicara tentang antarmuka dan mendefinisikan kemampuan yang kita janjikan untuk diberikan, kita berbicara
‫tentang membuat kontrak tentang apa yang dapat dilakukan objek.
‫Jadi apa objeknya adalah kelas abstrak, apa yang bisa dilakukan objek.
‫Dan antarmuka.
‫Baiklah, jadi saya harap Anda menikmati dan memahami ringkasan dan ikhtisar dari dua jenis
‫pendekatan yang berbeda ini.
‫Dan sekarang mari kita lanjutkan dan gunakan konsep-konsep itu dan contoh-contoh yang berbeda di sepanjang kuliah berikutnya dan di
‫sepanjang sisa kursus.