Anda di halaman 1dari 22

Abstract Class dan

Interface
Abstract Class
• Abstract class tidak bisa dibuat instance-nya (tidak
bisa dibuat objectnya)
• kode di bawah ini menyebabkan compilation error:
MyAbstractClass a1 = new MyAbstractClass();
• Abstract class adalah class yang memiliki minimal satu
abstract method
• Untuk menggunakan abstract class, digunakan class
lain (concrete class)
• concrete class harus mengimplementasi semua abstract
method
• concrete class diturunkan dari abstract class
Abstract method
• Method yang tidak memiliki implementasi (body)
• Untuk membuat abstract method, hanya tuliskan
deklarasi method tanpa bodi, dan gunakan abstract
keyword
• tidak ada { }
• Sebagai contoh:
//ingat tidak ada { }

public abstract void someMethod();


Contoh abstract class
Extending abstract class
• Ketika concrete class mengimplementasi abstract class
MakhlukHidup, maka concrete class tersebut harus
mengimplementasi method berjalan(). Jika tidak, maka
class tersebut akan jadi abstract class juga, sehingga tidak
dapat diinstansiasi / dibuat objectnya.
• Contohnya
Kapan menggunakan Abstract
Method dan Abstract Class?
• Abstract method digunakan ketika dua atau lebih subclass
dirancang untuk memenuhi aturan yang sama dengan
implementasi yang berbeda
• Subclass-subclass ini meng-extend abstract class yang sama namun
dengan implementasi yang berbeda pada abstract methodnya.
• Menggunakan abstract class sebagai konsep umum pada top
level class hierarki, dan menggunakan banyak subclass untuk
membuat detail implementasi abstract class
• Jika abstract class semua method-nya merupakan method
abstract, sebaiknya class abstract tersebut diganti menjadi
Interface
Contoh Implementasi
public abstract class Printer {
public abstract void printing();
public void scanner(){
}
}

public class Canon extends Printer{


public void printing(){
System.out.println("nge-print pakai tinta");
}
}

public class Samsung extends Printer {


public void fotocopy(){
System.out.println("Bisa buat fotocopy");
}
public void printing(){
System.out.println("nge-print pakai carbon");
}
}
Latihan
• Buatlah sebuah abstract class dengan minimal 2
abstract method dan buatlah subclass-nya.
• Subclass harus mengimplementasi abstract method
dan buatlah implementasinya
Interface
Interface
• Menggambarkan cara standart tentang behavior-
behavior maupun atribut yang dimiliki oleh class.
• Memungkinkan bagi class, dimanapun dia berada,
untuk mengimplementasi standar tingkah laku
• Untuk model multi inheritance yang mengijinkan
sebuah class dapat memiliki lebih dari satu
superclass.
Interface
• Interface berbeda dengan class.
• Interface berisi method kosong dan konstanta.
• Method dalam interface tidak mempunyai
statement (body)
• Sehingga deklarasi method dalam interface sama
dengan deklarasi abstract method pada abstract
class.
Interface
• Diawali dengan keyword “interface”.
• Ingat! Bukan keyword “class”.
• Berisi method abstract (dapat juga dilengkapi
dengan konstanta).
• Mendefinisikan tingkah laku dari sekumpulan method,
tanpa ada body (implementasi dari method)
• Concrete class harus mengimplementasi semua
abstract method
Contoh Interface
Implementasi Interface
• Untuk membuat concrete class yang
mengimplementasi interface, gunakan keyword
implements
• Syarat : seluruh method abstract yang ada pada
interface harus dideklarasi ulang didalam class yang
mengimplementasikannya.
Contoh
Multi-implements
• Sebuah class dapat melakukan
implements lebih dari satu interface.
• Contoh :
Inheritance pada Interface
• Interface dapat memiliki hubungan inheritance
antar mereka sendiri.
• Contoh :
Implements SubInterface
• Sebuah class yang mengimplementasikan sub-
interface wajib mendeklarasi ulang seluruh method
yang ada pada sub-interface tersebut dan juga
method yang ada pada superinterface-nya.
Interface sebagai type data
reference
• Ketika mendifinisikan interface baru, berarti telah
mendefinisikan reference type baru
• Interface sebagai reference type dapat digunakan
dimanapun seperti reference type lainnya
• Jika kita membuat variable bertipe interface, maka
object yang di-assign ke variable tersebut harus dari
class yang mengimplementasi interface yang
bersangkutan
Contoh: interface sebagai type
data reference
• Sebagai contoh class Manusia mengimplementasi
interface InterfaceManusia
• Maka
• Manusia m1 = new Manusia();
• InterfaceManusia im1 = m1;
• InterfaceManusia im2 = new Manusia();
Latihan
• Buatlah dua buah interface dengan masing-masing
memiliki 2 buah method
• Implementasikan dua interface tersebut pada
sebuah class.
Terima Kasih

Anda mungkin juga menyukai