7-Abstract Dan Interface

Embed Size (px)

DESCRIPTION

sfs

Citation preview

  • ABSTRACT CLASS AND INTERFACESby: 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 dapatditurunkan.

    Abstract Class

  • KELAS ABSTRAK

    Jika sebuah kelas mengandung metode abstrak, makakelas tersebut harus didekalarasikan secara abstrak pula.

  • CONTOH KELAS ABSTRAK

    Kelas abtrak LivingThing(maklukhidup) memiliki 3 metode:

    Breath (bernafas)

    Eat (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 abstrak dideklarasi tanpa diimplementasikan

    Cara penulisanya: tanpa kurung kurawal dan diikuti

    dengan titik koma

  • METODE ABSTRAK HARUS DIIMPLEMENTASIKAN

    Ketika kelas abstrak diturunkan maka semua metodeabstrak didalamnya harus diimplementasikan pula.

  • METODE ABSTRAK HARUS DIIMPLEMENTASIKAN [2]

    Error terjadi karena:metode calcArea tidak diimplemantasikan

  • METODE ABSTRAK HARUS DIIMPLEMENTASIKAN [3]

  • INTERFACES

  • INTERFACESSebuah interface adalah sebuah tipe referensi, seperti

    sebuah kelas.

    Hanya berisi konstanta, method signatures tanpa method

    bodies dan nested types.

    Interface tidak dapat diinstansiasi.

    Hanya apat diimplementasikan pada kelas atau

    diturunkan pada interface yang lain.

  • INTERFACE TIDAK DAPAT DIINSTANSIASI

    Konstanta

    method signatures

  • IMPLEMENTASI INTERFACE

    Kedua metodediimplementasikan

  • CONTOH INTERFACE LANJUT

  • UML CLASS DIAGRAM

    Lampu

    ~ statusLampu : int

    + hidupkan(): void

    + matikan(): void

    InterfaceLampu

    + keadaanHidup: int = 1{readOnly}

    + keadaanMati: int =0 {readOnly}

    + hidupkan(): void

    + matikan(): void

    LampuBeraksi

    + main(String[]): void

  • MENURUNKAN INTERFACE

  • MULTI INTERFACE

  • MULTI INTERFACE LANJUT

  • MULTI INTERFACE LANJUT

  • ABSTRACT VS INTERFACE

    Abstract Interface

    Untuk diturunkan (extends) Untuk diimplementasikan(implements)

    Dapat berisi variabel Hanya berisi konstanta (final variabel)

    Tidak semua metodedidalamnya abstrak.

    Semua metode didalamnyaabstrak.

    Tidak dapat melakukanmultiple abstrak

    Dapat melakukan multiple interface

  • THANKS