Di bawah ini adalah beberapa perbedaan antara interface dengan class

:: abstract class + interface. :: abstract class

ABSTRACT CLASS & INTERFACE

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Pemrograman Berorientasi. Abstract & Interface

Mendefinisikan kelas abstract. abstract class A {

ABSTRACT CLASS. Imam Fahrur Rozi

Praktikum 6 Abstract, Interface, Overloading, Overriding, dan Package

ABSTRACT & INTERFACE. Pemrograman Lanjut Herman Tolle

Pewarisan, Polimorfisme, dan Interface

TUGAS KOMPUTER DAN INTERFACE

IP BERBASIS GRAPHICAL USER INTERFACE (GUI) DENGAN Qt ABSTRACT

Membuat dan Menggunakan Class

CLASS, METHOD DAN MODIFIER

Abstract osztályok és interface-ek. 7-dik gyakorlat

abstract class bisa, kelas biasa bisa System.out.println("Ini nama");

Groothandel Interface 1. Groothandel Interface

Desain Class Dan Analisis Operator Pada Class Integer Tak Terbatas

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

             Pada kesempatan ini saya akan membahas apa perbedaan abstract class dan interface pada java.  Semoga bermanfaat.

I. Abstract Class

       Abstract Class merupakan Class yang khusus dibuat untuk keperluan inheritance. Tujuan dari pembuatan abstract class ini ialah untuk membuat definisi umum bagi class-class yang akan menjadi turunan darinya.

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

Abstract class hanya bisa digunakan sebagai super class, tapi juga bisa diturunkan dari class abstract lainnya. Untuk mendeklarasikan sebuah abstract class digunakan keyword abstract, [abstract] class [class_name] Sebuah abstract class pada dasarnya tidak hauh beda dengan class lainnya, yakni juga berisi method yang menggambarkan carakteristik dari kelas abstract tersebut, bedanya yakni sebuah abstract class bisa berisi method tanpa diimplementasikan artinya sebuah method tanpa body, methid seperti ini disebut method abstract.

II. Interface

           Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya. Sedangkan detail dari method berada pada class yang mengimplementasikan interface tersebut. Interface digunakan jika ingin mengaplikasikan suatu method yang spesifik, yang tidak diperoleh dari proses inheritance. Tipe data yang boleh pada interface hanya tipe data konstan.

Beberapa perbedaan Interface dan Kelas Abstrak yaitu : Abstract class dapat memiliki tipe data dengan semua tipe data, sedangkan interface tipe datanya hanya berupa konstanta Method pada abstract class dapat berupa method kongkrit dan method abstract. Sedangkan pada interface semua method harus berupa method abstract.

Dibawah ini merupakan contoh dari program Abstract Class dan hasil pengamatan dari program abstract class.

PROGRAM ABSTRACT CLASS

Dan saya akan menjelaskan tentang program abstract class berdasarkan pengamatan yang telah saya lakukan. Berikut hasil pengamatan Abstract Class :

PROGRAM ABSTRACT CLASS

abstract class AbstractClass
{

// Force Extending class to define this method abstract protected String getValue();

abstract protected String prefixValue(String prefix);

// Common method public void printOut() { System.out.println( this.getValue() ); } } class ConcreteClass1 extends AbstractClass { protected String getValue() { return “ConcreteClass1”; } public String prefixValue(String prefix) { return prefix + “ConcreteClass1”; } } class ConcreteClass2 extends AbstractClass { public String getValue() { return “ConcreteClass2”; } public String prefixValue(String prefix) { return prefix + “ConcreteClass2”; } } class Main { public static void main(String args[]) { ConcreteClass1 class1 = new ConcreteClass1(); class1.printOut();

System.out.println( class1.prefixValue(“FOO_”) );

ConcreteClass2 class2 = new ConcreteClass2(); class2.printOut(); System.out.println( class2.prefixValue(“FOO_”) ); }

}

Output pada program diatas

  PENGAMATAN ABSTRACT CLASS

1. Bolehkah ditambahkan body “{statement1; statement1;}” pada method getValue ataupun method prefixalue pada class abstract AbstractClass? Jelaskan!


Gak boleh lah !,  karena dalam abstract class didefenisikan sebagai class yang tidak memiliki objek. dan didalam abstract class tidak memiliki body method , jika method tersebut diisikan code akan terjadi eror. Sehingga, pada class childnya (class anak) kita mengoverride method tersebut.

2. Kembalikan program seperti semula, jelaskan error apa yang terjadi apabila method getValue() pada class ConcreteClass1 di hapus!


Karena pada Abstract Class terdapat method getValue ( ), dan pada ConcreteClass1 telah mengextends dari AbstractClass, jadi ConcreteClass1 mengoveride method abstrak yang ada di abstrak class, jika salah satunya ada di hapus maka terjadi eror.

3.  Kembalikan program seperti semula, selanjutnya perhatikan perbedaan hak akses method getValue() di child class ConcreteClass1 dan ConcreteClass2! Jelaskan apa maksudnya !

Dalam ConcreteClass1 memiliki hak akses protected, protected yaitu hak aksesnya pada satu kelas itu sendiri, kelas turunan tidak dapat mengakses method tersebut. Sedangkan ConcreteClass2 memiliki hak akses public, public artinya akses dapat dilakukan pada kelas yang lainnya.

4. Buatlah abstract method yang bernama getValue2 pada class ConcreteClass1! Compile dan mengapa terjadi error?

Karena ConcreteClass1 bukan kelas abstrak, melainkan subclass dari Abstract Class yang sudah ada. Sehingga tidak dapat diberi abstract method.

5. Ikuti soal nomor 4, silahkan ubah class ConcreteClass1 menjadi abstract. Selajutnya jelaskan mengapa terjadi error?

Karena, dapat dilihat dari eror tersebut jika diganti dengan method abstract akan menjadikan suatu objek, sedangkan sifat dari abstract itu tidak dapat membuat objek.

6. Dengan mengikuti struktur kode program di atas serta ditambahkan satu abstract method bernama “gabung” TANPA PARAMETER pada parent class, hasilkan output berikut: Tatank Mr. Tatank

Mr. Tatank hobi meloncat

Kells Mrs. Kells

Mrs. Kells hobi melet

PENGAMATAN INTERFACE

1. Compile kode program diatas dan jelaskan sebab error yang terjadi!
Pada class Mobil2 tidak melakukan override method merk yang terdapat di interface mobil

2.Tambahkan method yang diperlukan untuk mengatasi error yang terjadi (No. 1)!

3.   3. Perhatikan soal 1 (abstract) dan soal 2 ini (interface) dan lakukan poin-poin berikut: – Apa yang terjadi apabila ditambahkan method biasa yang mengandung body “{}” pada interface Mobil? Jelaskan! Terjadi eror, karena dalam aturan interface semua method adalah abstract dan juga public. Apabila method tersebut bersifat abstract, maka tidak bisa diberikan body pada method tersebut, – Jelaskan perbedaan body program antara class abstract dan interface! Pada Abstract Class memiliki atribut didalamnya, sedangkan interface tidak memiliki atribut. – Jelaskan perbedaan penggunaan extends antara soal 1 dan soal 2!

Pada soal no 1 extends digunakan untuk mengoveride suatu abstract method, sedangkan pada no 2 extends digunakan untuk menambahkan abstract method.

Pos ini dipublikasikan di Uncategorized. Tandai permalink.

Video yang berhubungan

Postingan terbaru

LIHAT SEMUA