Method Class Derived Java dan Fungsinya
Pengertian Method Class Derived
Cara Implementasi Method Class Derived
class Parent {
void display() {
System.out.println(
"Parent's display()");}
}
class Child extends
Parent {
void display() {
System.out.println(
"Child's display()");}
void additionalMethod() {
System.out.println(
"Additional method in Child class");}
}
public class Main {
public static void
main(String[] args) {
Child obj = new Child();
// Memanggil metode
// display() dari kelas Child.
obj.display();
// Memanggil metode
// additionalMethod()
// dari kelas Child.
obj.additionalMethod(); }
}
/* file name: Main.java */
class Base {
public void foo()
{System.out.println("Base");}
}
class Derived extends Base
{
/* kompilator error */
private void foo()
{System.out.println("Derived");}
}
public class Main {
public static void main(String args[])
{Derived d = new Derived();
d.foo();}
}
/* file name: Main.java */
class Base {
private void foo()
{ System.out.println("Base"); }
}
class Derived extends Base
{
/* program dapat berjalan sempurna */
public void foo()
{System.out.println("Derived");}
}
public class Main {
public static void main(String args[])
{Derived d = new Derived();
d.foo();}
}
- Penggantian Perilaku: Metode dalam kelas turunan dapat menggantikan perilaku metode yang diwarisi dari kelas induk. Hal ini memungkinkan kelas turunan untuk menyesuaikan atau memperluas fungsionalitas yang sudah ada.
- Penambahan Fungsionalitas: Selain meng-overriding metode yang sudah ada, kelas turunan juga dapat menambahkan metode baru sesuai dengan kebutuhan. Ini memungkinkan untuk menyediakan fungsionalitas tambahan yang unik untuk kelas tersebut.
- Penggunaan Polimorfisme: Method class derived memungkinkan penggunaan polimorfisme, di mana objek dari kelas turunan dapat diakses melalui referensi kelas induk. Ini memfasilitasi fleksibilitas dalam pemrograman dan memungkinkan untuk menangani objek secara umum.
- Reusable Code: Dengan menggunakan pewarisan dan method class derived, pengembang dapat memanfaatkan kembali kode yang sudah ada dalam kelas induk. Hal ini memungkinkan untuk menghindari duplikasi kode yang tidak perlu, sehingga meningkatkan efisiensi dan keterbacaan kode.
- Struktur Hierarki yang Terorganisir: Dengan menggunakan konsep pewarisan, pengembang dapat mengatur kelas-kelas ke dalam struktur hierarki yang terorganisir dan mudah dimengerti. Ini memungkinkan untuk membagi kode menjadi bagian-bagian yang lebih kecil dan terkelompok, sehingga mempermudah pemeliharaan dan pengembangan aplikasi.
- Polimorfisme: Salah satu keuntungan utama dari penggunaan method class derived adalah kemampuan untuk menggunakan polimorfisme. Polimorfisme memungkinkan untuk memperlakukan objek dari kelas turunan sebagai objek dari kelas induk, sehingga memberikan fleksibilitas dalam penggunaan dan penanganan objek.
- Kelas Abstrak: Method class derived juga memungkinkan untuk mendefinisikan kelas abstrak, yaitu kelas yang tidak dapat diinstansiasi secara langsung tetapi dapat digunakan sebagai kerangka kerja untuk kelas-kelas turunan. Ini berguna ketika ingin mendefinisikan perilaku umum yang harus diimplementasikan oleh kelas-kelas turunan.
- Refaktorisasi Kode: Dengan menggunakan method class derived, pengembang dapat dengan mudah melakukan refaktorisasi kode. Refaktorisasi adalah proses mengubah struktur internal dari kode tanpa mengubah perilaku fungsionalnya. Dengan memanfaatkan kelas turunan, pengembang dapat membagi kode ke dalam unit-unit yang lebih kecil dan lebih mudah dikelola.
- Pengujian yang Lebih Mudah: Dengan memanfaatkan pewarisan dan method class derived, pengembang dapat memisahkan logika bisnis dari detail implementasi. Ini memungkinkan untuk melakukan pengujian dengan lebih mudah, karena dapat membuat kelas turunan palsu (mock) untuk menggantikan kelas-kelas yang bergantung pada kelas yang sebenarnya.
- Ketergantungan pada Hierarki Warisan: Penggunaan pewarisan dan method class derived dapat membuat hierarki kelas menjadi kompleks dan sulit dipahami jika tidak dikelola dengan baik. Ketika terlalu banyak kelas turunan ditambahkan, dapat sulit untuk melacak hubungan antara kelas-kelas tersebut, yang dapat mengakibatkan kesulitan dalam pemeliharaan dan pemahaman kode.
- Masalah Hierarki: Hierarki warisan yang terlalu dalam atau terlalu kompleks dapat menyebabkan masalah seperti "masalah diamond" di mana sebuah kelas memiliki lebih dari satu kelas induk langsung yang memiliki metode dengan nama yang sama. Ini dapat menyebabkan kebingungan dan konflik dalam pemilihan metode yang tepat untuk dipanggil.
- Keterbatasan Fleksibilitas: Meskipun pewarisan dapat memberikan fleksibilitas dalam desain, terlalu banyak ketergantungan pada hierarki warisan dapat mengurangi fleksibilitas dalam pengembangan. Perubahan pada kelas induk dapat mempengaruhi banyak kelas turunan, yang mungkin memerlukan perubahan besar-besaran dalam kode.
- Kompromi Terhadap Kapsulasi: Penggunaan method class derived dapat mengganggu prinsip kapsulasi, terutama jika metode-metode dalam kelas induk tidak di-design dengan baik. Kelas turunan dapat memiliki akses langsung ke detail implementasi kelas induk, yang dapat menyebabkan ketergantungan yang tidak diinginkan antara kelas-kelas tersebut.
- Kesulitan Pemahaman: Hierarki kelas yang terlalu dalam atau kompleks dapat menyebabkan kesulitan dalam pemahaman dan dokumentasi kode. Pengembang baru mungkin memerlukan waktu ekstra untuk memahami hubungan antara kelas-kelas dan perilaku yang diwarisi.
- Overhead Penanganan Polimorfisme: Penggunaan polimorfisme dalam method class derived dapat menyebabkan overhead dalam penanganan objek. Ketika objek harus diproses dalam konteks kelas-kelas yang berbeda, hal ini dapat menambah kompleksitas dan biaya eksekusi.
Kesimpulan
5 komentar untuk "Method Class Derived 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 -
Apakah mungkin untuk menyembunyikan atau menurunkan tingkat akses ke method yang inheritance pada Java?
BalasHapusKetika melakukan override method, maka hanya bisa dilakukan dalam tipe public, bukan pada tipe private.
HapusKonsep inheritance dapat bekerja karena program dapat menggunakan base class, dimana subclassnya juga dapat digunakan. Behavior-nya mungkin berbeda, tetapi API tidak. Konsep tersebut dikenal dengan istilah Liskov substitusi.
HapusJika dapat dilakukan pembatasan akses ke suatu method, maka class yang dihasilkan tidak akan memiliki API yang sama dan juga tidak dapat digunakan override instance base class untuk salah satu class turunan, dan sudah pasti hal tersebut akan meniadakan keuntungan dari konsep inheritance pada Java.
Mungkin saja, tetapi membutuhkan sedikit manipulasi package dan dapat mengarah pada struktur yang sedikit lebih kompleks daripada yang ingin dikerjakan dalam kepentingan jangka panjang.
Hapusapalah susahnya hanya mengganti tipe private ke tipe public, jangan suka mempersulit diri sendiri. :D
Hapus