ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya •...

Post on 19-Jul-2020

52 views 0 download

Transcript of ABSTRACT CLASS - WordPress.com · ABSTRACT CLASS • Abstract class tidak bisa dibuat objectnya •...

ABSTRACT CLASS

Imam Fahrur Rozi

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

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

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

ABSTRACT VS CONCRETE CLASS

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

•  CONCRETE CLASS : Class yang bisa langsung diinstansiasi menjadi objek

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.

NOTASI ABSTRACT CLASS DI UML

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

BangunDatar

+luas+keliling

+hitungLuas()+hitungKeliling()

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()

DEKLARASI ABSTRACT CLASS

•  Dengan menuliskan keyword abstract didepan keyword class

•  Contoh: public abstact class BangunDatar{

}

DEKLARASI ABSTRACT METHOD

•  Dengan memberikan keyword abstract sebelum menuliskan tipedata fungsi/method

•  Contoh public abstract void hitungLuas();

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

INTERFACE

INTERFACE

•  Terdiri dari konstanta dan method tanpa implementasi

•  Interface menyerupai class public interface NamaInterface{

//method tanpa implementasi //definisi konstanta

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

satu package

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.

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

INTERFACE

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

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

DEKLARASI INTERFACE

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

}

CLASS IMPLEMENTS INTERFACE

•  Contoh: public class SegiEmpat extends BangunDatar

implements Resizable { …….. }

INTERFACE di UML

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

Flyer<<interface>>

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

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()

CONTOH

MULTIPLE IMPLEMENTATION

INHERITANCE + IMPLEMENTATION

•  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

CONTOH INTERFACE

MULTIPLE INTERFACE

•  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