Apa yang dimaksud dengan hierarki class?

Misalnya, Anda dapat memiliki kategori yang luas seperti sayuran, dan di dalamnya Anda dapat memiliki jenis yang lebih spesifik seperti polong-polongan. Di dalam polong-polongan, Anda dapat memiliki jenis yang lebih spesifik seperti kacang polong, kacang, lentil chick pea, dan kedelai.

Contoh di atas dapat diwakili sebagai hierarki karena polong-polongan mengandung atau mewarisi semua sifat-sifat sayuran (misalnya, tanaman dan dapat dimakan). Demikian pula, kacang polong, kacang, dan lentil juga memiliki sifat polong-polongan ditambah sifat uniknya sendiri.

Mari lihat cara Anda mewakili hubungan ini dalam istilah pemrograman. Jika Anda menjadikan Vegetable sebagai class di Kotlin, Anda dapat membuat Legume sebagai turunan atau subclass dari class Vegetable. Ini berarti semua properti dan metode class Vegetable diwarisi oleh (artinya juga tersedia di) class Legume.

Anda dapat mewakili hal ini dalam diagram hierarki class seperti yang ditunjukkan di bawah ini. Anda dapat merujuk ke Vegetable sebagai induk atau superclass dari class Legume.

Anda dapat melanjutkan dan memperluas hierarki class dengan membuat subclass Legume seperti Lentil dan Chickpea. Ini akan membuat Legume sebagai turunan atau subclass Vegetable serta induk atau superclass Lentil dan ChickpeaVegetable adalah class root atau *level atas (*atau dasar) dari hierarki ini.

Catatan: Ringkasan istilah

Berikut adalah ringkasan berbagai kata yang digunakan dalam codelab ini beserta artinya dalam konteks class Kotlin.

  • Hierarki class. Pengaturan tempat class diatur dalam hierarki induk dan turunan. Diagram hierarki biasanya digambarkan dengan posisi induk berada di atas turunan.
  • Turunan atau subclass. Setiap class yang berada di bawah class lain dalam hierarki.
  • Induk atau superclass atau class dasar. Semua class dengan satu atau beberapa class turunan.
  • Class root atau tingkat atas. Class di bagian atas (atau root) di hierarki class.
  • Pewarisan. Jika class turunan menyertakan (atau mewarisi) semua properti dan metode class induknya. Ini memungkinkan Anda berbagi dan menggunakan kembali kode sehingga program akan lebih mudah dipahami dan dikelola.

Pewarisan di Class Android

Meskipun Anda dapat menulis kode Kotlin tanpa menggunakan class, dan Anda telah melakukannya di codelab sebelumnya, ada banyak bagian Android yang diberikan kepada Anda dalam bentuk class, seperti aktivitas, tampilan, dan grup tampilan. Oleh karena itu, memahami hierarki class sangat penting untuk mengembangkan aplikasi Android dan memungkinkan Anda memanfaatkan fitur yang disediakan oleh framework Android.

Misalnya, ada class View di Android yang mewakili area persegi panjang di layar dan bertanggung jawab menangani gambar dan peristiwa. Class TextView adalah subclass dari class View yang artinya TextView mewarisi semua properti dan fungsi dari class View, serta menambahkan logika khusus untuk menampilkan teks kepada pengguna.

2fbc991a6afe5299.png

Lebih jauh, class EditText dan Button adalah turunan dari class TextView. Kedua class tersebut mewarisi semua properti dan metode class TextView dan View, serta menambahkan logika spesifiknya sendiri. Misalnya, EditText menambahkan fungsinya sendiri untuk dapat mengedit teks di layar.

Daripada harus menyalin dan menempelkan semua logika dari class View dan TextView ke dalam class EditTextEditText hanya perlu membuat subclass dari class TextView yang selanjutnya akan membuat subclass untuk class View. Kemudian, kode dalam class EditText dapat secara khusus berfokus pada perbedaan komponen UI ini dengan tampilan lainnya.

Di bagian atas halaman dokumentasi untuk class Android di situs developer.android.com, Anda dapat melihat diagram hierarki class. Anda akan dapat melihat kotlin.Any di bagian atas hierarki karena di Kotlin, semua kelas memiliki superclass umum Any. Pelajari lebih lanjut di sini.

57cd75bd819126bb.png

Seperti yang Anda lihat, dengan mempelajari cara memanfaatkan pewarisan di antara class dapat membuat kode Anda lebih mudah ditulis, digunakan kembali, dibaca, dan diuji.