Abstract Class
Seperti namanya, abstract merupakan gambaran umum dari sebuah kelas. Ia tidak dapat direalisasikan dalam sebuah objek. Pada modul sebelumnya kita sudah mempunyai kelas Animal.
Secara harfiah hewan merupakan sebuah sifat. Kita tidak tahu bagaimana objek hewan tersebut. Kita tahu bentuk kucing, ikan dan ular seperti apa tetapi tidak untuk hewan. Maka dari itu konsep abstract class perlu diterapkan agar kelas Animal tidak dapat direalisasikan dalam bentuk objek namun tetap dapat menurunkan sifatnya kepada child class-nya.
Untuk menjadikan sebuah kelas abstract, kita hanya perlu menambahkan keyword abstract sebelum menuliskan nama kelas:
- abstract class Animal(var name: String, var weight: Double, var age: Int, var isCarnivore: Boolean){
- fun eat(){
- println("$name sedang makan !")
- }
- fun sleep(){
- println("$name sedang tidur !")
- }
- }
Dengan begitu kelas Animal tidak dapat kita inisialisasikan menjadi sebuah objek.
- fun main(){
- val animal = Animal("dicoding animal", 2.6, 1, true)
- }
Ketika kita mencoba membuat objek dari kelas Animal, akan terdapat eror berikut:
Cannot create an instance of an abstract class
Posting Komentar