9 Abstract Class Interface

download 9 Abstract Class Interface

of 27

Transcript of 9 Abstract Class Interface

  • 7/23/2019 9 Abstract Class Interface

    1/27

    ABSTRACT CLASS

    Imam Fahrur Rozi

  • 7/23/2019 9 Abstract Class Interface

    2/27

    ABSTRACT CLASS

    Abstract class adalah class yang

    mempunyai setidaknya satu abstract

    method.

    Abstract method adalah method yangtidak memiliki body (hanya deklarasi

    method).

    Implementasi dari isi abstract methodtersebut dilakukan pada subclass

  • 7/23/2019 9 Abstract Class Interface

    3/27

    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

  • 7/23/2019 9 Abstract Class Interface

    4/27

    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 implementasidari abstract method yang ada di

    superclass

  • 7/23/2019 9 Abstract Class Interface

    5/27

    ABSTRACT VS CONCRETE CLASS

    ABSTRACT CLASS : Tidak bisa

    diinstansiasi mjd objek. Kecuali setelah

    diturunkan dulu.

    CONCRETE CLASS : Class yang bisalangsung diinstansiasi menjadi objek

  • 7/23/2019 9 Abstract Class Interface

    6/27

    KAPAN DIGUNAKAN ABSTRACT CLASS?

    Ketika diinginkan membuat satu class

    yang hanya berfungsi sebagai abstraksi

    (model yang umum) dan tidak

    diinginkan untuk diinstansiasi suatuobjek darinya.

  • 7/23/2019 9 Abstract Class Interface

    7/27

    NOTASI ABSTRACT CLASS DI UML

    Baik klas atau method yang bertipe

    abstract maka ditulis dengan abjad

    miring / italic

    BangunDatar

    +luas

    +keliling+hitungLuas()+hitungKeliling()

  • 7/23/2019 9 Abstract Class Interface

    8/27

    MISAL

    Bentuk bangun dataramasih sangat luas dan

    abstrak, karena bentuknya

    blm spesifik. Jadi tidak adaobjek yang ingin langsung

    dibuat darinya

    Objek yang dibuat adalah

    objek dari SegiTigaSikudan SegiEmpat

    BangunDatar

    +luas+keliling

    +hitungLuas()+hitungKeliling()

    SegiEmpat

    +panjang+lebar

    +hitungLuas()+hitungKeliling()

    SegiTigaSiku

    +alas+tinggi+sisiMiring

    +hitungLuas()+hitungKeliling()

  • 7/23/2019 9 Abstract Class Interface

    9/27

    DEKLARASI ABSTRACT CLASS

    Dengan menuliskan keyword abstract

    didepan keyword class

    Contoh:

    public abstact class BangunDatar{

    }

  • 7/23/2019 9 Abstract Class Interface

    10/27

    DEKLARASI ABSTRACT METHOD

    Dengan memberikan keyword abstract

    sebelum menuliskan tipedata fungsi/

    method

    Contoh

    public abstract void hitungLuas();

  • 7/23/2019 9 Abstract Class Interface

    11/27

    INGAT!

    Di dalam abstract class boleh ada

    deklarasi method non abstract (yang

    sudah ada isinya/implementasinya)

    Jika suatu dalam suatu class adamethod abstract, maka class tersebut

    juga harus dideklarasikan abstract

    Unistanciable/tak bisa diinstansiasi

  • 7/23/2019 9 Abstract Class Interface

    12/27

    INTERFACE

  • 7/23/2019 9 Abstract Class Interface

    13/27

    INTERFACE

    Terdiri dari konstanta dan method tanpaimplementasi

    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

  • 7/23/2019 9 Abstract Class Interface

    14/27

    INTERFACE

    Class yang mengimplementasikan interface,semua konstanta dan method interface akan

    dimiliki oleh class ini.

    Method pada interface harusdiimplementasikan pada class yang

    mengimplementasikan interface ini.

    Bila class yang mengimplementasikan

    interface tidak menginplemetasikan semuamethod dalam interface, makaclass tersebut

    harus dideklarasikan abstract.

  • 7/23/2019 9 Abstract Class Interface

    15/27

    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 extendsharuslebih dulu dari implements

  • 7/23/2019 9 Abstract Class Interface

    16/27

    INTERFACE

    Method yang dideklarasikan didalam

    interface secara otomatis adalah public

    dan abstract.

    Variable dalam interface secaraotomatis adalah public, static, dan final

  • 7/23/2019 9 Abstract Class Interface

    17/27

    DEKLARASI INTERFACE

    public interface NamaInterface{

    //deklarasi konstanta

    //deklarasi abstract method

    }

  • 7/23/2019 9 Abstract Class Interface

    18/27

    CLASS IMPLEMENTS INTERFACE

    Contoh:

    public class SegiEmpat extends BangunDatar

    implements Resizable {

    !!..

    }

  • 7/23/2019 9 Abstract Class Interface

    19/27

    INTERFACE di UML

    Mirip simbol Class tapi di atas nama

    ada stereotype

    Flyer

    +takeOver()

    +land()+fly()

  • 7/23/2019 9 Abstract Class Interface

    20/27

    IMPLEMENTATION di UML

    Relasi Implementasi

    (ketika suatu Class

    implements ke

    Interface), mirip sepertiinheritance, tapi garis

    panahnya putus2.

    Flyer

    +takeOff()+land()

    +fly()

    AirPlane

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

  • 7/23/2019 9 Abstract Class Interface

    21/27

    CONTOH

  • 7/23/2019 9 Abstract Class Interface

    22/27

    MULTIPLE IMPLEMENTATION

  • 7/23/2019 9 Abstract Class Interface

    23/27

    INHERITANCE + IMPLEMENTATION

  • 7/23/2019 9 Abstract Class Interface

    24/27

    This sounds like multiple inheritance.Not quite. The danger of multiple

    inheritance is that a class could inherit

    two distinct implementations of thesame method. This is not possibble with

    interfaces because an interface method

    declaration supplies no implementation

  • 7/23/2019 9 Abstract Class Interface

    25/27

    CONTOH INTERFACE

  • 7/23/2019 9 Abstract Class Interface

    26/27

    MULTIPLE INTERFACE

  • 7/23/2019 9 Abstract Class Interface

    27/27

    A class can implement more than oneinterface. Not only can the SeaPlane

    fly, but it can also sail. The SeaPlane

    class extends the Airplane class, so itinherits that implementation of the Flyer

    interface. The SeaPlane class also

    implements the Sailer interface