Anda di halaman 1dari 23

ABSTRACT CLASS AND

INTERFACES
by: De Rosal Ignatius Moses Setiadi

KELAS ABSTRAK
Sebuah

kelas abstrak dideklarasikan dengan keyword


abstract.

Didalamnya

mungkin terdapat atau tidak terdapat


method abstract.

Kelas

abstrak tidak dapat di instansiasi, tapi dapat


diturunkan.
Abstract Class

KELAS ABSTRAK
Jika

sebuah kelas mengandung metode abstrak, maka


kelas tersebut harus didekalarasikan secara abstrak pula.

CONTOH KELAS ABSTRAK


Kelas

abtrak LivingThing(makluk
hidup) memiliki 3 metode:

Breath
Eat

(bernafas)

(makan)

Walk

(berjalan) tidak dapat di


generalisasi antara human (manusia) yang
berjalan dengan 2 kaki dan dog (anjing)
yang berjlana dengan 4 kaki

CONTOH KELAS ABSTRAK [2]

CONTOH KELAS ABSTRAK [3]

KELAS ABSTRAK TIDAK DAPAT DIINSTANSIASI

METODE ABSTRAK
Metode

Cara

abstrak dideklarasi tanpa diimplementasikan

penulisanya: tanpa kurung kurawal dan diikuti


dengan titik koma

METODE ABSTRAK HARUS DIIMPLEMENTASIKAN


Ketika

kelas abstrak diturunkan maka semua metode


abstrak didalamnya harus diimplementasikan pula.

METODE ABSTRAK HARUS DIIMPLEMENTASIKAN [2]

Error terjadi karena:


metode calcArea tidak diimplemantasikan

METODE ABSTRAK HARUS DIIMPLEMENTASIKAN [3]

INTERFACES

INTERFACES
Sebuah

interface adalah sebuah tipe referensi, seperti


sebuah kelas.

Hanya

berisi konstanta, method signatures tanpa method


bodies dan nested types.

Interface
Hanya

tidak dapat diinstansiasi.

apat diimplementasikan pada kelas atau


diturunkan pada interface yang lain.

INTERFACE TIDAK DAPAT DIINSTANSIASI


Konstanta
method signatures

IMPLEMENTASI INTERFACE

Kedua metode
diimplementasikan

CONTOH INTERFACE LANJUT

UML CLASS DIAGRAM


<<interface>>
InterfaceLampu
+ keadaanHidup: int = 1{readOnly}
+ keadaanMati: int =0 {readOnly}
+ hidupkan(): void
+ matikan(): void

LampuBeraksi
+ main(String[]): void
Lampu
~ statusLampu : int
+ hidupkan(): void
+ matikan(): void

MENURUNKAN INTERFACE

MULTI INTERFACE

MULTI INTERFACE LANJUT

MULTI INTERFACE LANJUT

ABSTRACT VS INTERFACE
Abstract
Untuk diturunkan (extends)
Dapat berisi variabel
Tidak semua metode
didalamnya abstrak.
Tidak dapat melakukan
multiple abstrak

Interface
Untuk diimplementasikan
(implements)
Hanya berisi konstanta (final
variabel)
Semua metode didalamnya
abstrak.
Dapat melakukan multiple
interface

THANKS

Anda mungkin juga menyukai