0% menganggap dokumen ini bermanfaat (0 suara)
218 tayangan24 halaman

Abstract Class Dan Interface

Dokumen tersebut membahas tentang kelas abstrak dan interface dalam bahasa pemrograman Java. Secara ringkas, dokumen menjelaskan penggunaan kelas abstrak untuk mendefinisikan template kelas turunan, interface untuk mendefinisikan peran baru, serta contoh kasus penggunaan kelas abstrak dan interface.

Diunggah oleh

Yulia Sari
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
218 tayangan24 halaman

Abstract Class Dan Interface

Dokumen tersebut membahas tentang kelas abstrak dan interface dalam bahasa pemrograman Java. Secara ringkas, dokumen menjelaskan penggunaan kelas abstrak untuk mendefinisikan template kelas turunan, interface untuk mendefinisikan peran baru, serta contoh kasus penggunaan kelas abstrak dan interface.

Diunggah oleh

Yulia Sari
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 24

Kelas Abstrak dan

Interface

[email protected]
Outline

[email protected]
Review - Hirarki Animal

[email protected]
review - Polymorphism

[email protected]
Inheritance - Anomali
Animal anim = new Animal();

Object anim masih tidak jelas bentuknya, apakah Dog, Hippo, Lion, atau
yang lain ?

[email protected]
• Object anim
• isi instance variabel nya apa ?
• tidak jelas
• ada Class yang seharusnya tidak pernah di buat objectnya -->
abstract Class
• Class Abstract tidak akan bisa dibuat objectnya.
• Class yang bisa dibuat objectnya : concrete class

[email protected]
[email protected]
Abstract Method
• dalam sebuah abstract class, bisa memiliki abstract method
• Kalau sudah diberi identitas abstract method, maka harus di override
oleh subclass nya.
• subclass harus meng-implement (override) semua abstract method
• Abstract Method harus berada di dalam abstract class.

[email protected]
public abstract class Hewan {
abstract void setName();
abstract void setMakanan();
}

[email protected]
Class Object Java
• Setiap class di Java pasti extend ke
Class Object.
• Class yang secara eksplisit tidak
melakukan extend ke class object,
makan akan dilakukan extend secara
implisit (tidak tertulis)
• class object memiliki method equals,
getClass, hashCode, toString.
• Semua class di java pasti juga
memiliki method tsb di atas (dari
konsep inheritance)

[email protected]
Kasus - Dog Class
• Class Canine sesuai dengan spesifikasi.
• Class Animal sesuai dengan spesifikasi.
• Class Object juga sesuai dengan spesifikasi.
• Bagaimana jika kita ingin menggunakan class dog dalam sebuah
aplikasi hewan peliharaan (pet).

[email protected]
Pillihan ke-1
• semua method pet masukkan ke
animal
• semua subclass otomatis akan
inherit pet behavior
• apakah Lion termasuk pet ?
• Cat and dog bisa memiliki
implementasi pet yang berbeda

[email protected]
Pilihan ke-2
• sama dengan pilihan 1,
kemudian semua method pet
dimasukkan sebagai method
abstract, sehingga memaksa
semua subclass melakukan
override methode pet.
• semua animal jadi pet, logiskah ?

[email protected]
Pilihan ke-3
• letakkan method pet hanya pada
class yang bisa menjadi pet.
• Tidak ada kontrak, bisa jadi
penamaan method tidak sama,
nilai return type juga bisa berbeda
• tidak bisa memanfaatkan fitur
polymorphism

[email protected]
• jadi yang sebenarnya diperlukan adalah,
• pet behavior hanya ada di class yang masuk dalam golongan pet,
• ada kontrak yang menjamin kesamaan nama method
• dan bisa menerapkan konsep polymorphism
• Pakai 2 superclass ??
• Multiple inheritence, --> bad thing
• Dilarang

[email protected]
[email protected]
Multiple inheritence, --> bad thing

[email protected]
Interface
• interface, sama dengan abstract
class.
• semua method dalam inteface
adalah abstract method, jadi
harus diimplementasikan dalam
di subclassnya.

[email protected]
[email protected]
• class dari inheritance yang berbeda bisa mengimplement interface yang
sama.
• Class bisa implement multiple interface (namun tidak boleh multiple
inheritance)

[email protected]
menentukan Class, subclass, abstract
class, dan interface
• Buat class (biasa) jika class tersebut tidak extend dari class lain, atau jika
class lain tidak memenuhi konsep 'IS-A'
• Buat subclass jika dari class yang sudah dibuat, perlu ada class lagi yang lebih
spesifik dan harus melakukan override atau menambahkan behavior baru.
• Gunakan class abstract jika ingin mendefinisikan template untuk kumpulan
subclass.
• Gunakan class abstract jika kita ingin memastikan bahwa tidak ada object yang bisa di
buat dari sebuah class.
• Gunakan interface jika kita ingin mendefinisikan role / peran baru (dengan
behavior baru) yang bisa diimplement oleh class lain, dengan tidak
memperhatikan keberadaan class tersebut dalam inheritance tree.

[email protected]
super
• digunakan untuk memanggil
method miliki superclass nya.

[email protected]
Latihan
• buat tulisan singkat apa yang dimaksud dengan
• abstract class
• concrete Class
• interface
• jelaskan dan berikan contoh kasus class kapan kita harus membuat
abstract class, concrete class, dan interface

[email protected]
Referensi
• “Head First Java”, Kathy Sierra & Bert Bates, O'Reilly, Chapter 2

[email protected]

Anda mungkin juga menyukai