- TypeScript OOP – Class Dan Object
- TypeScript OOP – Encasulaption Dan Inheritance
- TypeScript OOP – Abstract Class
- TypeScript OOP – Polymorphism
- TypeScript OOP – Interface
Assalamualaikum Warahmatullahi Wabarakatuh.
Halo kawan – kawanku semuaaa!! Bagaimana kabar kaliaann? Sudah gak sabar buat ngelanjutin belajar tentang TypeScript OOP yaa.
Pada pembahasan TypeScript OOP kali ini kita akan membahas tentang abstract class. Bagi kalian yang belum membaca artikel TypeScript OOP sebelunnya dapat membuka artikel ini TypeScript OOP – Encasulaption Dan Inheritance.
Yaudah yuk, langsung aja kita masuk ke pembahasan utama!!
Mengenal OOP
Pada bagian ini kita akan mengenali apa sih abstract class itu. pengenalan ini bertujuan agar kita mendapat sekilas gambaran tentang istilah – istilah yang ada pada OOP.
Abstract Class merupakan sebuah class yang masih dalam bentuk abstrak dan tidak dapat diinstansi. Dengan menerapkan Abstract Class, class tersebut dapat memiliki Abstract Method.
Pembuatan Program
Seperti pada artikel sebelumnya, kita akan melanjutkan pembuatan program kita. Pada artikel sebelumnya kita telah membuat class berdasarkan brand mobil yang mengikuti kompetisi dan memberikan inheritance dari class Car
.
Pada artikel ini, kita akan menerapkan agar mobil yang akan mengikuti kompetisi hanya dari mobil dengan brandnya yang terdaftar. Jadi tidak sembarangan mobil bisa mendaftar.
Untuk mengecek bentuk terakhir program yang telah dibuat, kalian dapat mengaksesnya di Github.
Pada program yang telah kita buat kita masih dapat melakukan instansi untuk class Car
. Ini dapat mengakibatkan mobil selain brand yang terdaftar dapat mengikuti kompetisi.
const Tesla = new Car('Tesla', 250, 250000);
Kita masih dapat melakukan instansi mobil tesla tersebut. Abstract class berfungsi untuk mencegah hal tersebut. Dengan menerapkan abstract class, class tersebut tidak dapat diinstansi seperti di atas. Berikut merupakan bentuk kode untuk abstract class.
export abstract class Car {
...
}
Dengan menambahkan keyword abstract pada class Car
akan mengubanya menjadi ke bentuk abstract.
Sekarang kita akan mengubah salah satu method pada class Car
menjadi abstract method. Ini bertujuan agar subclass dari superclass tersebut tidak lupa untuk melakukan overriding pada method tersebut. Aturan untuk abstract method ialah method tersebut tidak boleh memiliki isi.
abstract getName(): string;
abstract move(): void;
Kode diatas merupakan bentuk dari abstract method untuk method getName()
dan move(
). Pastikan juga pada setiap subclass kalian, kalian menuliskan kembali dua method tersebut. Ini bertuuan untuk menghindari error.
move(): void {
console.log(`${ this.getName() } berjalan dengan kecepatan ${ this.getSpeed() } mph`);
}
getName(): string {
return `${ this.brand } ${ this.model }`;
}
Sepertinya cukup sekian pembahasan tentang abstract class. Bagi kalian yang mungkin ingin mengetahui lebih banyak lagi tentang abstract class, kalian dapat membuka artikel ini, TypeScript: Handbook – Classes. Bagi kalian yang ingin melihat bentuk program secara kseluruhan dapat mengaksesnya di Github.
Terimakasih untuk kalian yang telah membaca artikel ini dan semoga ilmu yang didapatkan dapat bermanfaat kedepannya. Jika terdapat kesalahan maupun kekurangan dalam penulisan artikel kali ini, penulis memohon maaf yang sebesar – besarnya.
Wassalamualaikum Warahmatullahi Wabarakatuh.
Pingback: Belajar TypeScript : TypeScript OOP - Polymorphism - Kawan Koding