Skip to main content
Assalamu’alaikum warahmatullahi wabarokatuh. Pada kesempatan kali ini saya akan menjelaskan ABSTARCT DAN INTERFACE sebagai berikut :


Abstract Class adalah class yang mempunyai setidaknya satu abstract method. Abstract method adalah method yang tidak memiliki body (hanya deklarasi method). Abstract class tidak bisa dibuat obyeknya. Obyek hanya bisa dibuat dari non-abstract class (concrete class). Konsekuensinya, suatu abstract class haruslah diturunkan dimana pada subclass tersebut berisi implementasi dari abstract method yang ada di super class-nya.

Contoh Kode Program :
package Teori;
public abstract class Parent{
public abstract void mAbstract();
public static void main(String[] args){
// membuat objek P dari class Parent
Parent P = new Parent();
}
}
Penjelasan :
Teori.Parent abstract; cannot be instantiated
Parent p = new Parent();
1 error
artinya :

// tidak bisa di buatkan objek dari class Parent


Setelah itu hasil ouputnya seperti dibawah ini 



Abstract Class
Bila subclass yang diturunkan dari abstract class tidak mengimplementasikan isi semua method abstrak parent class, maka subclass tersebut harus tetap dideklarasikan abstract. Dan deklarasi method abstract pada subclass tersebut boleh tidak dituliskan kembali.

Contoh Kode Program :
package Teori;
public abstract class Parent{
public abstract void mAbstract();
}
class Child extends Parent{
public void mAbstract(){}
}
Contoh Kode Program :
package Teori;
public abstract class Parent{
public abstract void mAbstract();
}
abstract class Child extends Parent{
}

Abstract Class
Kegunaan Class Abstract :
  • Class Abstract berisi beberapa method dan beberapa method abstract. Class Abstract berisi sebagian implementasi, dan subclass yang melengkapi implementasinya. Dengan kata lain Class Abstract memiliki beberapa kesamaan (Bagian yang diimplementasikan oleh subclass) dan memiliki perbedaan (method yang dimiliki sendiri oleh class abstract)
  • Deklarasikan method abstract, jika ada satu atau lebih subclass yang diharapkan mempunyai fungsionalitas yang sama tapi implementasi berbeda.
  • Gunakan class abstract untuk mendefinisikan behavior secara umum sebagai superclass sedangkan subclass menyediakan implementasi detail.
  • Jika class abstract semua method merupakan method abstract, sebaiknya class abstract tersebut diganti menjadi Interface (dijelaskan selanjutnya).
Buat class baru bernama Shape dan program sebagai berikut :



Berikutnya, buat class Triangle. Class ini merupakan turunan dari class Shape. Berikut ini program class Triangle :


Setelah itu, buat satu lagi turunan dari class Shape, yakni Circle. Berikut ini program untuk class Circle:



Terakhir, buat class Main untuk mencoba membuat objek dengan class yang sudah dibuat. Coba perhatikan objek segitiga dan lingkaran! Kedua objek ini memiliki tipe yang sama yakni Shape, tapi mereka dibuat dari class yang berbeda.

Nah, sekarang coba jalankan programnya. Maka hasilnya :



Interface

Interface berbeda dengan class. Interface berisi method kosong dan konstanta. Method dalam interface tidak mempunyai statement. Sehingga deklarasi method dalam interface sama dengan deklarasi abstract method pada abstract class. Method yang dideklarasikan didalam interface secara otomatis adalah public dan abstract. Variable dalam interface secara otomatis adalah public, static, dan final.

Contoh Kode Program :
public interface Relation {
public boolean isGreater( Object a, Object b);
public boolean isLess( Object a, Object b);
public boolean isEqual( Object a, Object b);
}

Interface
Mengimplementasikan Interface :
  • Bila sebuah class mengimplementasikan suatu interface, maka semua konstanta dan method interface akan dimiliki oleh class ini.
  •  Method pada interface harus diimplementasikan pada class yang mengimplementasikan interface ini.
  • Bila class yang mengimplementasikan interface tidak mengimplemetasikan semua method dalam interface, maka class tersebut harus dideklarasikan abstract.
Deklarasi Implementasi Interface :
<modifier> class <name> [extends <super class>]
[implements <interface> [, <interface>]* ] {
<declarations>*
}

Interface
public boolean isGreater( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen > bLen);
}
public boolean isLess( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen < bLen);
}
public boolean isEqual( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen == bLen);
}
}

Contoh Kode Program :
public class Line implements Relation {
private double x1;
private double x2;
private double y1;
private double y2;
public Line(double x1, double x2, double y1, double y2){
this.x1 = x1;
this.x2 = x2;
this.y1 = y1;
this.y2 = y2;
}
public double getLength(){
double length = Math.sqrt((x2-x1)*(x2-x1) +
(y2-y1)* (y2-y1));
return length;
}


Contoh Program dan Hasil Output Line  :




Interface
• Class Line mengimplementasikan interface Relation, pastikan semua method yang ada di interface diimplementasikan
di class Line. Jika tidak maka muncul error.
Line.java:4: Line is not abstract and does not override
abstract method isGreater(java.lang.Object,java.lang.Object) in Relation
public class Line implements Relation
^
1 error
Error di atas adalah contoh ketika method isGreater tidak di buat/di override di dalam class Line
• Jika kedua class di satukan dalam satu file (Relation di gabung dengan Line maka akan muncul error sbb :
Relation.java:7: class Line is public, should be declared in a file named Line.java
public class Line implements Relation {
 ^
1 error
Solusinya : public ci salah satu nya harus di buang

Interface
Inheritance pada p Interface :
  • Kita bisa membuat subinterface dengan menggunakan kata extends.
  • Satu class boleh mengimplementasikan lebih dari satu interface.
  • Suatu interface boleh mengextends lebih dari satu interface.
  • Interface bukan bagian dari hirarki class
  • Namun interface dapat mempunyai relasi inheritance
public interface PersonInterface {
void doSomething();
}
public interface StudentInterface extends PersonInterface {
void doExtraSomething();
}

Interface
Mengimplementasikan Multiple Interface :
  • Satu class boleh mengimplementasikan lebih dari satu interface.
  • Bila suatu class akan dijadikan subclass dan akan mengimplementasikan interface, maka kata extends harus lebih dulu dari implements.
Kegunaan Interface :
Semua class yang mengimplementasikan sebuah interface tertentu berarti classclass tersebut mengimplementasikan methods yang sama dengan kata lain class-class tersebut mempunyai fungsionalitas yang sama.


Contoh Program dan Hasil Output Airplane  :




Contoh Program dan Hasil Output interface Flyer  :



Setelah itu, buat class baru di dalam <default package> dengan nama Phone dan isi kodenya seperti ini :


Berikutnya, buat lagi class baru dengan nama PhoneUser dan isi kodenya seperti ini :


Berikutnya kita akan membuat class implementasi dari interface Phone. Kita coba buat satu saja dulu.

Silahkan buat class baru dengan nama Xiaomi, kemudian isi kodenya seperti ini:


Terakhir, buatlah class Main dengan isi sebagai berikut :



Sekarang coba jalankan class Main1. Caranya, Klik kanan lalu pilih Run File atau bisa juga dengan menekan Shift+F6.

Maka hasilnya:




Saya ucapkan Terima kasih banyak untuk semuanya yang telah melihat blog ini. Semoga blog ini bermanfaat bagi kalian untuk menambah ilmu pengetahuan dan pengalaman.Aamiin.
                         https://www.petanikode.com/java-oop-interface/


Comments

Popular posts from this blog

Belajar Java menggunakan Jcreator

Assalamu'alaikum Warohmatullahi Wabarokatuh. Disini saya mau menjelaskan pengertian dari JCreator.  JCreator  adalah  sebuah aplikasi yang dapat digunakan untuk membuat sebuah program, misalnya program java, C/C++, pascal dan lain lain.  Namun pada pembahasan kali ini saya akan menggunakan bahasa pemrograman java. Cara Menggunakan JCreator : Maka pertama kita membuat workspace terlebih dahulu 1. Buka menu file -> new -> blank workspace 2. Isikan nama workspace anda 3.Setelah itu buatlah sebuah project atau file , klik kanan dalam workspace anda pili "add new project atau file" 4. Pilih empety project atau file 5. Isikan nama project atau file anda kemudian klik finish 6. Sekarang buat sebuah file dengan klik kanan dalam project atau file kemudian ADD -> new file 7.Pilih java classes -> empety java file 8. Kemudian beri nama file java anda TANPA SPASI 9. Sekarang anda bisa menulis kode...
Assalamu’alaikum warahmatullahi wabarokatuh. Pada kesempatan kali ini saya akan menjelaskan class, objek dan package  sebagai berikut : 1. Pengertian Class a. Kelas  Merupakan predefined class, yaitu kelas yang telah disediakan oleh java dan menjadi reference library. Banyak kelas standard yang dapat digunakan untuk aplikasi yang spesifik. Kumpulan class ini sering dikenal dengan istilah API (application Programming Interface). b. Kelas yang didefinisikan Sendiri (UDF) Selain kelas standar, terkadang kita juga perlu memodelkan suatu objek kedalam kelas dan mendefenisikan data serta method yang dimilikinya. Bila aplikasi tersebut besar dan kompleks, kita dapat membaginya menjadi beberapa package yang didalamnya terdapat beberapa kelas. 2. Deklarasi Class dan Method a. Deklarasi class sederhana class namaClass{ // body class } b. Deklarasi class lengkap modifier1 tipeData namaClass modifier2 [namaClass/namaInterface...]{ // body class } Objek : 1. Untuk mem...