Last Updated on February 7, 2023 by
Abstract Class Kotlin mirip dengan abstrak class Java yang tidak dapat dibuat instance-nya. Ini berarti kita tidak dapat membuat objek dari method abstract. Namun, kita bisa mewarisi subclass dari class abstract Kotlin.
Pada artikel ini, Anda akan belajar kotlin tentang abstract class dan cara mengimplementasikannya di Kotlin (dengan bantuan contoh).
Table of Contents
Mengenal Apa Itu Abstract Class
Abstract Class Kotlin dideklarasikan menggunakan kata kunci abstrak di depan class name. Properti dan method abstract adalah non-abstrak kecuali kita secara eksplisit menggunakan kata kunci abstrak untuk membuatnya class abstrak. Jika kita ingin mengganti anggota ini di child class maka kita hanya perlu menggunakan kata kunci override di depan class child.
Method abstract adalah kelas yang didefinisikan sebagian, metode dan properti yang tidak ada implementasinya tetapi harus diimplementasikan ke dalam kelas turunan. Jika kelas turunan tidak mengimplementasikan properti dari kelas dasar maka itu juga dimaksudkan sebagai kelas abstrak.
Method abstrak atau fungsi abstrak tidak perlu dianotasi dengan kata kunci terbuka karena terbuka secara default . Fungsi anggota abstrak tidak mengandung tubuhnya. Fungsi anggota tidak dapat dideklarasikan sebagai abstrak jika berisi badan di kelas abstrak.
Contoh dan implementasi Abstract Class
Contoh Sederhana
abstract class Person { var age: Int = 40 fun displaySSN(ssn: Int) { println("My SSN is $ssn.") } abstract fun displayJob(description: String) }
Penjelasan :
- abstract Person Anda tidak dapat membuat objek kelas.
- kelas memiliki properti non-abstrak agedan metode non-abstrak displaySSN(). Jika Anda perlu mengganti anggota ini di subkelas, mereka harus ditandai dengan open kata kunci.
- Kelas memiliki metode abstrak displayJob(). Itu tidak memiliki implementasi apa pun dan harus diganti dalam subkelasnya.
Contoh class abstract Car
Dalam contoh ini, ada kelas abstrak Car yang berisi fungsi abstrak run(). Implementasi fungsi run() disediakan oleh subkelasnya Toyota.
abstract class Car{ abstract fun run() } class Toyota: Car(){ override fun run(){ println("Toyota is running safely..") } } fun main(args: Array<String>){ val obj = Toyota() obj.run(); }
Program Kotlin Menggunakan Anggota Abstrak dan Non Abstract Pada Method Abstract
abstract class Employee(val name: String,val experience: Int) { abstract var salary: Double abstract fun dateOfBirth(date:String) fun employeeDetails() { println("Name of the employee: $name") println("Experience in years: $experience") println("Annual Salary: $salary") } } class Engineer(name: String,experience: Int) : Employee(name,experience) { override var salary = 700000.00 override fun dateOfBirth(date:String){ println("Date of Birth is: $date") } } fun main(args: Array<String>) { val eng = Engineer("Liam",2) eng.employeeDetails() eng.dateOfBirth("02 February 1996") }
Penjelasan:
Pada program di atas, class Engineer diturunkan dari class Employee . Objek eng dibuat untuk kelas Engineer. Kami telah meneruskan dua parameter ke konstruktor utama saat membuatnya. Ini menginisialisasi nama properti non-abstrak dan pengalaman kelas Karyawan. Itu
Kemudian employeeDetails() metode dipanggil menggunakan eng objek. Ini akan mencetak nilai nama, pengalaman, dan gaji karyawan yang diganti.
Pada akhirnya, dateOfBirth() dipanggil menggunakan eng objek dan kami telah meneruskan tanggal parameter ke konstruktor utama. Itu mengesampingkan abstract fun dari kelas Karyawan dan mencetak nilai yang diteruskan sebagai parameter ke output standar.
Mengganti anggota terbuka non-abstrak dengan yang abstrak
Di Kotlin kita bisa mengganti fungsi anggota terbuka non-abstrak dari open class menggunakan kata kunci override diikuti dengan abstrak di kelas abstrak. Dalam program di bawah ini kita akan melakukannya :
Contoh sintaks
open class Livingthings { open fun breathe() { println("All living things breathe") } } abstract class Animal : Livingthings() { override abstract fun breathe() } class Dog: Animal(){ override fun breathe() { println("Dog can also breathe") } } fun main(args: Array<String>){ val lt = Livingthings() lt.breathe() val d = Dog() d.breathe() }
Mengganti Fungsi Abstract Class di lebih dari 1 Turunan
Anggota abstrak dari kelas abstrak dapat diganti di semua kelas turunan. Dalam program ini, kita akan mengesampingkan cal fungsi dalam tiga kelas turunan kalkulator.
abstract class Calculator { abstract fun cal(x: Int, y: Int) : Int } class Add : Calculator() { override fun cal(x: Int, y: Int): Int { return x + y } } class Sub : Calculator() { override fun cal(x: Int, y: Int): Int { return x - y } } class Mul : Calculator() { override fun cal(x: Int, y: Int): Int { return x * y } } fun main(args: Array<String>) { var add: Calculator = Add() var x1 = add.cal(4, 6) println("Addition of two numbers $x1") var sub: Calculator = Sub() var x2 = sub.cal(10,6) println("Subtraction of two numbers $x2") var mul: Calculator = Mul() var x3 = mul.cal(20,6) println("Multiplication of two numbers $x3") }
Bagian Akhir
Itulah penjelasan mengenai Abstract Class, dan dari pembahasan tersebut semoga Anda dapat memahami dan mendapat sedikit informasi apa itu Class Abstract pada belajar Kotlin dan bagaimana implementasinya dalam berbagai contoh yang sudah kami lampirkan.
Temukan lebih banyak artikel seri belajar Kotlin maupun bahasa pemrograman lainnya hanya di CODEKEY. Klik https://codekey.id/ sekarang juga untuk langsung belajar gratis. Sampai bertemu lagi!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.