Interface dan Inheritance Java dan Fungsinya
Interface dalam Java
// Definisikan sebuah
// interface
interface Drawable
{void draw();}
// Implementasikan interface
// dalam sebuah kelas
class Circle implements
Drawable {
public void draw() {
System.out.println(
"Drawing a circle.");}
}
// Main class untuk
// menjalankan program
public class Main {
public static void
main(String[] args) {
Circle circle = new Circle();
circle.draw();}
}
Pewarisan dan Interface dalam Java
// Definisikan sebuah
// interface
interface Drawable {
void draw();}
// Definisikan sebuah kelas
class Shape {
void display() {
System.out.println(
"Displaying a shape.");}
}
// Implementasikan interface
// dan pewarisan dalam sebuah
// kelas
class Circle extends Shape
implements Drawable {
public void draw() {
System.out.println(
"Drawing a circle.");}
}
// Main class untuk
// menjalankan program
public class Main {
public static void
main(String[] args) {
Circle circle = new Circle();
// Menjalankan metode
// dari kelas induk
circle.display();
// Menjalankan metode
// dari interface
circle.draw(); }
}
// Program Java
// mendemonstrasikan bahwa
// sebuah class dapat
// implement multiple
// interface.
import java.io.*;
interface intfA
{void m1();}
interface intfB
{void m2();}
// class melakukan implement
// antar kedua interface dan
// menyediakan implementasi
// menuju method.
class sample implements intfA, intfB
{
@Override
public void m1()
{System.out.println("Welcome:"
+" dalam method m1");}
@Override
public void m2()
{System.out.println("Welcome:"
+" dalam method m2");}
}
class MKN
{
public static void main (String[] args)
{sample ob1 = new sample();
// memanggil method implement
// bersamaan dengan class.
ob1.m1();
ob1.m2();}
}
Welcome: dalam method m2
// Program Java
// mendemonstrasikan
// inheritance dalam
// interface.
import java.io.*;
interface intfA
{void idName();}
interface intfB extends intfA
{void idInstitute();}
// class implement kedua
// interface dan menyediakan
// implementasi menuju method.
class sample implements intfB
{
@Override
public void idName()
{System.out.println("Rohit");}
@Override
public void idInstitute()
{System.out.println("JIIT");}
public static void main (String[] args)
{
sample ob1 = new sample();
// memanggil method implement
// dalam class.
ob1.idName();
ob1.idInstitute();}
}
JIIT
// Program Java
// mendemonstrasikan multiple
// inheritance dalam
// interface.
import java.io.*;
interface intfA
{void idName();}
interface intfB
{void idInstitute();}
interface intfC extends intfA, intfB
{void idBranch();}
// class implement kedua
// interface dan menyediakan
// implementasi menuju method.
class sample implements intfC
{
public void idName()
{System.out.println("Rohit");}
public void idInstitute()
{System.out.println("JIIT");}
public void idBranch()
{System.out.println("CSE");}
public static void main (String[] args)
{sample ob1 = new sample();
// memanggil method
// implementasi dalam class.
ob1.idName();
ob1.idInstitute();
ob1.idBranch();}
}
JIIT
CSE
- Fleksibilitas dalam Desain: Interface memberikan fleksibilitas dalam desain aplikasi dengan memisahkan kontrak antara kelas-kelas yang mengadopsinya dan implementasi konkretnya. Hal ini memungkinkan pengembang untuk mengganti implementasi tanpa mempengaruhi kelas-kelas lain yang bergantung padanya.
- Penggunaan Kode yang Dapat Digunakan Kembali: Pewarisan memungkinkan kelas untuk mewarisi sifat-sifat dan perilaku dari kelas induk tanpa perlu menuliskan ulang kode yang sudah ada. Ini memungkinkan penggunaan kembali kode yang efisien dan mengurangi duplikasi kode.
- Peningkatan Polimorfisme: Dengan memungkinkan sebuah kelas untuk mengimplementasikan beberapa interface, Java memungkinkan untuk meningkatkan polimorfisme dalam aplikasi. Ini memungkinkan penggunaan objek dari kelas-kelas yang berbeda dengan cara yang konsisten melalui antarmuka yang sama.
- Struktur yang Terorganisir: Pewarisan dan interface membantu dalam membangun struktur yang terorganisir dan mudah dimengerti dalam kode. Dengan membagi kode ke dalam kelas-kelas yang sesuai dengan fungsionalitas kode program dan mengadopsi interface yang sesuai, pengembang dapat memperjelas tujuan dan tanggung jawab setiap kelas.
- Keterbatasan pada Pewarisan:
- Keterbatasan pada Pewarisan Tunggal: Dalam Java, sebuah kelas hanya dapat mewarisi sifat-sifat dari satu kelas induk langsung. Ini dapat menjadi keterbatasan dalam situasi di mana sebuah kelas memerlukan sifat-sifat dari beberapa kelas lainnya.
- Ketergantungan yang Tinggi: Ketika sebuah kelas mewarisi sifat-sifat dari kelas induknya, hal itu membuatnya tergantung pada struktur hierarki kelas. Perubahan pada kelas induk dapat memengaruhi banyak kelas turunan, dan sebaliknya, meningkatkan ketergantungan yang tinggi antar kelas.
- Keterbatasan pada Interface:
- Keterbatasan Implementasi: Interface hanya dapat mendefinisikan kontrak metode tanpa memberikan implementasi. Ini dapat menjadi keterbatasan jika sebuah kelas perlu mengimplementasikan banyak metode dari beberapa interface, karena harus menuliskan implementasi untuk setiap metode tersebut.
- Ketergantungan pada Implementasi: Ketika sebuah kelas mengadopsi sebuah interface, itu harus menyediakan implementasi untuk semua metode yang didefinisikan dalam interface tersebut. Hal ini meningkatkan ketergantungan pada implementasi kelas terkait dan dapat menyebabkan kesulitan dalam pemeliharaan dan pengembangan kode.
- Kompleksitas:
- Kompleksitas Hierarki: Dengan penggunaan yang berlebihan, interface dan pewarisan dapat menyebabkan kompleksitas yang tinggi dalam hierarki kelas. Hal ini dapat membuat pemahaman terhadap struktur program menjadi sulit, terutama dalam proyek-proyek besar yang melibatkan banyak kelas.
- Konflik Nama dan Ambiguitas: Dalam situasi di mana sebuah kelas mewarisi metode atau variabel dengan nama yang sama dari beberapa sumber, seperti kelas induk dan interface yang diadopsi, dapat terjadi konflik nama atau ambiguitas. Hal ini dapat menyulitkan dalam pemahaman kode dan memperbaiki masalah yang muncul.
- Fleksibilitas Terbatas:
- Keterbatasan pada Perubahan Struktur: Ketika sebuah kelas mewarisi sifat-sifat dari kelas induknya atau mengadopsi sebuah interface, itu membuat struktur kelas menjadi lebih kaku. Perubahan pada struktur pewarisan atau pengadopsian interface dapat memerlukan perubahan besar dalam kode, yang dapat menyebabkan masalah dan kerugian waktu.
Kesimpulan
- Parent dan Child Class Java Dengan Anggota Data Sama
- Object Serialisasi Java Terhadap Inheritance
- Object Subclass dan Subclass Java Dan Referensi Superclass
- Overloading dan Inheritance Java dan Fungsinya
- Tipe Operator Java dan Fungsinya
- Operator Aritmatika Java Beserta Penjelasannya
- Operator Unary Java dan Penjelasannya
5 komentar untuk "Interface dan Inheritance Java dan Fungsinya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan inheritance Java?
BalasHapusInterface pada Java adalah cetak biru dari sebuah class. Interface memiliki static constants dan abstract method. Interface pada Java adalah mekanisme untuk mencapai sebuah abstract dan multiple inheritance.
HapusBagaimana cara mengimplementasikan interface pada Java?
BalasHapusInterface adalah class abstract yang digunakan untuk mengelompokkan method terkait dengan empty body yang digunakan. Untuk mengakses method interface, maka interface harus diimplementasikan ke class lain dengan keyword implements.
HapusInterface dalam pemrograman Java didefinisikan sebagai tipe abstract yang digunakan untuk menentukan perilaku dardi sebuah class. Interface Java berisi konstanta static dan method abstract. Sebuah class pada Java dapat mengimplementasikan banyak interface. Pada Java, interface dideklarasikan dengan menggunakan keyword interface.
BalasHapus