:: 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)!
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.