Download - ABSTRACT CLASS

Transcript
Page 1: ABSTRACT CLASS

ABSTRACT CLASS

Imam Fahrur Rozi

Page 2: ABSTRACT CLASS

ABSTRACT CLASS

• Abstract class adalah class yang mempunyai setidaknya satu abstract method.

• Abstract method adalah method yang tidak memiliki body (hanya deklarasi method).

• Implementasi dari isi abstract method tersebut dilakukan pada subclass

Page 3: ABSTRACT CLASS

ABSTRACT CLASS

• Bila subclass method abstract tidak mengimplementasikan isi semua method maka subclass tersebut harus dideklarasikan abstract.

• Dan Deklarasi method abstract pada subclass tersebut boleh tidak dituliskan kembali

Page 4: ABSTRACT CLASS

ABSTRACT CLASS

• Abstract class tidak bisa dibuat objectnya

• Object hanya bisa dibuat dari non-abstract class (concrete class)

• Konsekuensinya suatu abstract class haruslah diturunkan dimana pada subclass tersebut berisi implementasi dari abstract method yang ada di superclass

Page 5: ABSTRACT CLASS

ABSTRACT VS CONCRETE CLASS

• ABSTRACT CLASS : Tidak bisa diinstansiasi mjd objek. Kecuali setelah diturunkan dulu.

• CONCRETE CLASS : Class yang bisa langsung diinstansiasi menjadi objek

Page 6: ABSTRACT CLASS

KAPAN DIGUNAKAN ABSTRACT CLASS?

• Ketika diinginkan membuat satu class yang hanya berfungsi sebagai abstraksi (model yang umum) dan tidak diinginkan untuk diinstansiasi suatu objek darinya.

Page 7: ABSTRACT CLASS

NOTASI ABSTRACT CLASS DI UML

• Baik klas atau method yang bertipe abstract maka ditulis dengan abjad miring / italic

BangunDatar

+luas+keliling+hitungLuas()+hitungKeliling()

Page 8: ABSTRACT CLASS

MISAL

• Bentuk bangun datara masih sangat luas dan abstrak, karena bentuknya blm spesifik. Jadi tidak ada objek yang ingin langsung dibuat darinya

• Objek yang dibuat adalah objek dari SegiTigaSiku dan SegiEmpat

BangunDatar

+luas+keliling+hitungLuas()+hitungKeliling()

SegiEmpat

+panjang+lebar+hitungLuas()+hitungKeliling()

SegiTigaSiku

+alas+tinggi+sisiMiring+hitungLuas()+hitungKeliling()

Page 9: ABSTRACT CLASS

DEKLARASI ABSTRACT CLASS

• Dengan menuliskan keyword abstract didepan keyword class

• Contoh:public abstact class BangunDatar{

}

Page 10: ABSTRACT CLASS

DEKLARASI ABSTRACT METHOD

• Dengan memberikan keyword abstract sebelum menuliskan tipedata fungsi/method

• Contoh public abstract void hitungLuas();

Page 11: ABSTRACT CLASS

INGAT …

• Di dalam abstract class boleh ada deklarasi method non abstract (yang sudah ada isinya/implementasinya)

• Jika suatu dalam suatu class ada method abstract, maka class tersebut juga harus dideklarasikan abstract

• Unistanciable/tak bisa diinstansiasi

Page 12: ABSTRACT CLASS

INTERFACE

Page 13: ABSTRACT CLASS

INTERFACE

• Terdiri dari konstanta dan method tanpa implementasi

• Interface menyerupai classpublic interface NamaInterface{

//method tanpa implementasi//definisi konstanta

} • Public supaya bisa diakses dimana saja• Tanpa public default hanya bisa diakses dalam

satu package

Page 14: ABSTRACT CLASS

INTERFACE

• Class yang mengimplementasikan interface, semua konstanta dan method interface akan dimiliki oleh class ini.

• Method pada interface harus diimplementasikan pada class yang mengimplementasikan interface ini.

• Bila class yang mengimplementasikan interface tidak menginplemetasikan semua method dalam interface, makaclass tersebut harus dideklarasikan abstract.

Page 15: ABSTRACT CLASS

INTERFACE

• Kita bisa membuat subinterface dengan menggunakan kata extends.

• Satu class boleh mengimplementasikan lebih dari satu interface.

• Bila suatu class merupakan subclass dan akan mengimplementasikan interface maka kata extends harus lebih dulu dari implements

Page 16: ABSTRACT CLASS

INTERFACE

• Method yang dideklarasikan didalam interface secara otomatis adalah public dan abstract.

• Variable dalam interface secara otomatis adalah public, static, dan final

Page 17: ABSTRACT CLASS

DEKLARASI INTERFACE

public interface NamaInterface{//deklarasi konstanta//deklarasi abstract method

}

Page 18: ABSTRACT CLASS

CLASS IMPLEMENTS INTERFACE

• Contoh:public class SegiEmpat extends BangunDatar

implements Resizable { ……..}

Page 19: ABSTRACT CLASS

INTERFACE di UML

• Mirip simbol Class tapi di atas nama ada stereotype <<interface>>

Flyer<<interface>>

+takeOver()+land()+fly()

Page 20: ABSTRACT CLASS

IMPLEMENTATION di UML

• Relasi Implementasi (ketika suatu Class implements ke Interface), mirip seperti inheritance, tapi garis panahnya putus2.

Flyer<<interface>>

+takeOff()+land()+fly()

AirPlane

+takeOff()+land()+fly()

Page 21: ABSTRACT CLASS

CONTOH

Page 22: ABSTRACT CLASS

MULTIPLE IMPLEMENTATION

Page 23: ABSTRACT CLASS

INHERITANCE + IMPLEMENTATION

Page 24: ABSTRACT CLASS

• This sounds like multiple inheritance. Not quite. The danger of multiple inheritance is that a class could inherit two distinct implementations of the same method. This is not possibble with interfaces because an interface method declaration supplies no implementation

Page 25: ABSTRACT CLASS

CONTOH INTERFACE

Page 26: ABSTRACT CLASS

MULTIPLE INTERFACE

Page 27: ABSTRACT CLASS

• A class can implement more than one interface. Not only can the SeaPlane fly, but it can also sail. The SeaPlane class extends the Airplane class, so it inherits that implementation of the Flyer interface. The SeaPlane class also implements the Sailer interface