Penggunaan Inheritance Kotlin Class Android (Contoh : BaseActivity)

Muhammad Faisal Amir
2 min readSep 9, 2019

--

Image From : https://www.javatpoint.com/kotlin-android-explicit-intent

Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkanproperty dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program. Konsep inheritance membuat sebuah struktur atau ‘hierarchyclass dalam kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atau their class.

Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari class anak.

https://www.duniailkom.com/tutorial-belajar-oop-php-pengertian-inheritance-pewarisan/

Disini akan ditunjukkan penggunna sederhana dengan inheritance fungsi Intent

Berikut contoh penggunaannya :

- Buat New Project Android

- Buat Class Kotlin dengan nama Base Activity

- Buat Activity baru dengan nama DetailActivity

BaseActivity.kt

abstract class BaseActivity : AppCompatActivity() {

lateinit var mActivity: AppCompatActivity

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mActivity = this

}

protected inline fun <reified ClassActivity> baseStartActivity(context: Context) {
context.startActivity(Intent(context, ClassActivity::class.java))
}

}

MainActivity.Kt

class MainActivity : BaseActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

button2.setOnClickListener {
baseStartActivity<DetailActivity>(this)
}

}
}

Dengan memanfaatkan sifat inheritance tadi kita dapat memaksimalkan pengerjaan project kita dengan nama fungsi yang biasa kita gunakan

Untuk mempermudah ada contoh project di :

Selamat mencoba,

Silahkan kunjungi :

- Linkedin : linkedin.com/in/faisalamircs

- Instagram : @faisalamircs

- GitHub : github.com/amirisback

Lets jump outside the box!!!

--

--