“Abstract Class & Interface”


Abstract Class : Merupakan class yang khusus dibuat untuk keperluan inheritance. Tujuan dari pembuatan abstract class adalah untuk membuat definisi umum bagi class-class yang akan menjadi turunan dari abstract class tersebut.

Abstract Class tidak bisa diinstansiasi dan Abstract method tidak mempunyai implementasi, sehingga penulisannya hanya dilakukan dengan menyertakan semikolon, bukan blok method {} seperti biasanya. Abstract method ini bisa digunakan oleh class turunannya dengan melakukan override.

Interface : Berfungsi sebagai antarmuka yang membentuk komunikasi dengan kode lain. Misalnya membentuk hubungan antara sebuah object dengan object yang lain atau hubungan antara object sebagai penyedia dengan kode penggunanya.

 Perbedaan Abstract Class & Interface 

Perbedaan
Abstract Class   Interface
Sebuah class hanya mampu menurunkan satu abstract class Sebuah class mampu menurunkan beberapa interface
Bisa berisi abstract dan non-abstract method Hanya boleh berisi abstract method
Method boleh bersifat static  Method tidak boleh bersifat static 
Method boleh bersifat final Method tidak boleh bersifat final
Hanya bisa meng-extend satu abstract class lainnya Bisa meng-extend satu interface atau lebih
Bisa mendeklarasikan constant dan instance variable. Hanya bisa mendeklarasikan constant.  Secara implisit, variabel yang dideklarasikan di interface bersifat public, static dan final. 
Modifier harus ditulis sendiri  Modifier tidak perlu ditulis karena secara implisit modifier untuk method di interface adalah public dan abstract.
Mempunyai contructor Tidak mempunyai constructor
Boleh mempunyai metode yang sudah diimplementasikan Tidak boleh mempunyai metode yang sudah diimplementasikan 
Sebuah abstract class dapat memiliki field dan constant yang telah didefinisikan Tidak ada field yang bisa didefinisikan dalam interface

Contoh Abstract Class 

 

public class Point extends Shape {

static int x, y;

public Point() {

x = 0;

y = 0;

}

public double area() {

return 0;

}

public double perimeter() {

return 0;

}

public static void print() {

System.out.println(“point: ” + x + “,” + y);

}

public static void main(String args[]) {

Point p = new Point();

p.print();

}

}

Contoh Interface 

 

public class Point implements Shape {

static int x, y;

public Point() {

x = 0;

y = 0;

}

public double area() {

return 0;

}

public double volume() {

return 0;

}

public static void print() {

System.out.println(“point: ” + x + “,” + y);

}

public static void main(String args[]) {

Point p = new Point();

p.print();

}

}

Advertisements

About David Febryanto (D.F)

Founder of Maretutips. Joined Wordpress since October 2013. Studying Computer Science at Binus University.

Posted on October 30, 2013, in Advanced Object Oriented Programming, Semester 3 and tagged , , , , , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: