+ All Categories
Home > Documents > Kelas Abstrak dan Interface

Kelas Abstrak dan Interface

Date post: 22-Feb-2016
Category:
Upload: winola
View: 92 times
Download: 0 times
Share this document with a friend
Description:
Kelas Abstrak dan Interface. Kelas Abstrak. Contoh public abstract class Animal { private int numOfFoots ; private Color color ; public abstract void walk(); public abstract void sound(); }. public class Cat extends Animal { public void walk() { - PowerPoint PPT Presentation
22
Kelas Abstrak dan Interface
Transcript
Page 1: Kelas Abstrak dan  Interface

Kelas Abstrak dan Interface

Page 2: Kelas Abstrak dan  Interface

Kelas Abstrak

Page 3: Kelas Abstrak dan  Interface

• Contoh

public abstract class Animal { private int numOfFoots; private Color color;  public abstract void walk(); public abstract void sound();

}

Page 4: Kelas Abstrak dan  Interface

public class Cat extends Animal { public void walk() { System.out.println("cat walks using 4

legs"); }

public void sound() { System.out.println("miaouw");

}}

Page 5: Kelas Abstrak dan  Interface

public class Chicken extends Animal { public void walk() { System.out.println("chicken walks using 2 legs"); }

public void sound() { System.out.println("kukuruyuk"); }}

Page 6: Kelas Abstrak dan  Interface

• Pada kode program di atas dideklarasikan kelas Animal yang abstrak, di mana di dalamnya dideklarasikan dua variabel yaitu numOfFoots dan color. Selain itu, juga dideklarasikan dua buah method, yaitu walk(), dan sound().

• Method di dalam kelas Animal tidak didefiniskan impelementasi method, dengan harapan bahwa obyek turunan hewan yang spesifik, seperti Chicken dan Cat akan menyediakan implementasinya yang spesifik dengan kondisi masing-masing hewan.

Page 7: Kelas Abstrak dan  Interface

• Pada Contoh di atas, method abstrak walk() dan sound() dalam kelas Animal diimplementasikan oleh kelas Chicken dan Cat.

• Kelas abstrak juga boleh tidak memiliki method abstrak sebagaimana ditunjukkan pada contoh program berikut.

Page 8: Kelas Abstrak dan  Interface

public abstract class Vehicle { private String type;  public String getType() { return type; }}

Page 9: Kelas Abstrak dan  Interface

• Apabila ada satu saja method yang dideklarasikan dalam sebuah kelas sebagai method abstrak, maka kelas tersebut harus dideklarasikan abstract.

• Method abstrak adalah method yang sudah dideklarasikan, tetapi belum diimplementasikan. Sebuah method ditulis dengan kata kunci abstract ketika kelas turunan (subclass) di bawahnya menyediakan implementasi method tersebut

Page 10: Kelas Abstrak dan  Interface

• Method abstrak ditandai dengan modifier abstract, tidak memiliki implementasi, dan diakhiri dengan tanda titik koma ( ; ).

public abstract void myAbstractMethod();

Page 11: Kelas Abstrak dan  Interface

Interface• Interface mendefinisikan aturan perilaku (protocol of

behavior) yang dapat diimplementasikan oleh kelas manapun. • Interface mendefinisikan satu set method tanpa menyediakan

implementasinya. • Sebuah kelas yang mengimplementasi sebuah interface terikat

kontrak oleh interface tersebut untuk mengimplementasi semua method yang ada di dalam interface.

• Dengan kata lain, kelas tersebut terikat untuk meng-implementasikan perilaku tertentu yang tertulis dalam interface. Secara substansi, interface merupakan kumpulan dari method abstrak dan konstanta.

Page 12: Kelas Abstrak dan  Interface

• Interface memiliki kemiripan dengan kelas abstrak, di mana keduanya memuat method abstrak. Perbedaan penting antara interface dan kelas abstrak adalah :– Sebuah interface tidak dapat membuat implementasi satu

method pun, sementara kelas abstrak dapat membuat implementasi satu atau lebih method;

– Sebuah kelas dapat mengimplementasi beberapa interface, tetapi ia hanya dapat meng-extends satu superclass.

– Interface bukan merupakan bagian dari hirarki kelas. Dua kelas yang tidak berhubungan dalam jalur hirarki kelas dapat mengimplementasi interface yang sama.

Page 13: Kelas Abstrak dan  Interface

Mendeklarasi interface• Misalkan ada sekumpulan obyek yang

memiliki kemampuan yang sama, yaitu mereka semua dapat terbang. Untuk itu dapat dibuatkan sebuah interface publik, yang dinamakan Flyer, yang memiliki tiga operasi takeOff, land, dan fly.

Page 14: Kelas Abstrak dan  Interface

<<interface>>Flyer

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

+ fly()

+ takeOff()+ land()

Airplane

Page 15: Kelas Abstrak dan  Interface

• Panah dengan garis putus-putus di atas menggambarkan kelas Airplane mengimplementasikan interface Flyer. Kode Java dari disain kelas di atas ditunjukkan sebagai berikut.

Page 16: Kelas Abstrak dan  Interface

public interface Flyer { public void takeOff(); public void land(); public void fly();}

Page 17: Kelas Abstrak dan  Interface

public class Airplane implements Flyer { public void takeOff() { //accelerate until lift-off //raise landing gear }  public void land() { //lower landing gear //decelerate and lower flaps until touch-

down //apply breaks }  public void fly() { //keep those engines running }} 

Page 18: Kelas Abstrak dan  Interface

• Satu interface Flyer dapat diimplementasikan oleh beberapa kelas. Sebagai contoh, pesawat terbang (Airplane), burung (Bird), dan superman (Superman), semuanya dapat terbang.

Page 19: Kelas Abstrak dan  Interface

+ fly()

<<interface>>Flyer

+ takeOff()+ land()

Airplane

+ fly()

+ takeOff()+ land()

+ buildNest()+ layEggs()

+ fly()

Bird

+ takeOff()+ land()

+ leapBuilding()+ stopBullet()

Superman

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

Page 20: Kelas Abstrak dan  Interface

Multiple Interface

Seperti telah dijelaskan di sebelumnya, sebuah kelas dapat mengimplementasi lebih dari satu interface. Sebagai contoh, sebuah SeaPlane (pesawat yang dapat mendarat dan terbang di/dari air) tidak hanya dapat terbang, ia juga dapat berlayar. Kelas SeaPlane me-extends kelas Airplane dan mengimplementasi interface Flyer. Kelas SeaPlane juga mengimplementasi interface Sailer.

Page 21: Kelas Abstrak dan  Interface

+ cruise()

<<interface>>Sailer

+ dock()

+ fly()

<<interface>>Flyer

+ takeOff()+ land()

RiverBarge

+ dock()+ cruise()

Airplane

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

SeaPlane

+ dock()+ cruise()

Vehicle

Helicopter

Page 22: Kelas Abstrak dan  Interface

• Biasanya interface digunakan untuk:– mendeklarasikan method yang akan diimplementasikan

oleh satu atau beberapa kelas.– menunjukkan interface sebuah obyek ke publik tanpa

menunjukkan isi kelas sebenarnya.– menangkap kesamaan di antara beberapa kelas tanpa

perlu memasukkannya dalam hirarki kelas (superclass - subclass).

– mensimulasikan konsep pewarisan banyak kelas dengan mendeklarasikan kelas yang mengimplementasikan beberapa interface sekaligus.


Recommended