Lompat ke konten Lompat ke sidebar Lompat ke footer

Overloading dan Overriding Static Java dan Fungsinya

Pada arikel ini akan dipelajari materi tentang Overloading dan Overriding dari method static pada Java, namun sebelum mempelajari hal tersebut, terlebih dahulu pelajari pengertian dari Overloading dan Overriding.


Sebelum lebih lanjut mempelajari materi tentang Overloading dan Overriding Static Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Cara Menggunakan Overriding Java dan Fungsinya, Cara Menggunakan Overloading Java dan Fungsinya, dan PUBLIC STATIC VOID MAIN Java dan Fungsinya.

Dalam pemrograman Java, overloading dan overriding adalah dua konsep penting yang memungkinkan pengembang untuk menentukan perilaku metode yang berbeda dalam sebuah kelas. Ketika kedua konsep ini dikombinasikan dengan kata kunci static, maka method-method tersebut memiliki implikasi dan fungsionalitas yang berbeda. Dalam artikel ini, akan dijelajahi overloading dan overriding static dalam Java beserta fungsinya.

Overriding: adalah fitur bahasa OOP seperti Java yang berkaitan dengan runtime polymorphism. Sebuah subclass atau derived class menyediakan implementasi spesifik dari sebuah method dalam superclass atau base class. Implementasi yang akan dieksekusi, akan diputuskan saat runtime dan keputusan yang dibuat tersebut adalah sesuai menurut object yang dipanggil untuk digunakan pada program. 

Catatan: signature dari kedua method harus sama.

Overloading: Overloading adalah fitur dari bahasa OOP seperti Java yang berkaitan dengan compile time atau static polymorphishm. Fitur ini mengizinkan method berbeda untuk memiliki nama yang sama, tetapi signature berbeda, khususnya angka dari input parameter dan tipe dari input parameternya. 

Catatan: pada Java dan C++, method tidak bisa overloading menurut tipe return-nya.

Overloading Static Method pada Java

Dapat dimiliki dua atau lebih method yang bernama sama, tetapi berbeda dalam hal input parameternya. Contoh, perhatikan program Java berikuti ini.

Fungsi Overloading Static:
  • Fleksibilitas: Overloading static memungkinkan pengembang untuk mendefinisikan berbagai versi dari operasi yang sama dengan tipe data yang berbeda.
  • Keterbacaan Kode: Dengan overloading static, pengembang dapat menyimpan nama metode yang sama untuk operasi yang berbeda, membuat kode lebih mudah dipahami.

Contoh:

/* filename Test.java */

public class Test {

 

public static void foo() 

{System.out.println("Test.foo"

+"() dipanggil");}

 

public static void foo(int a

{System.out.println("Test.foo"

+"(int) dipanggil");}

 

public static void main(String args[])

{Test.foo();

Test.foo(10);}

 

}

Output:
Test.foo() dipanggil
Test.foo(int) dipanggil

Baca Juga:

Melakukan Overloading Method yang Hanya Berbeda pada Static Keyword

Tidak bisa dilakukan overloading dua method pada Java jika keduanya berbeda hanya pada bagian keyword static atau angka dari parameter dan tipe dari parameternya adalah sama. Perhatikan contoh program berikut ini. Behavior adalah sama pada C++.

Contoh:

/* filename Test.java */

public class Test {

 

public static void foo() 

{System.out.println("Test.foo"

+"() dipanggil");}

 

public void foo() 

// Compiler Error: cannot 

// redefine foo().

System.out.println("Test.foo"

+"(int) dipanggil");

}

 

public static void main(String args[]

{Test.foo();}

 

}

Output:
Compiler Error, cannot redefine foo()

Overriding Static Method pada Java

Static method dapat dideklarasikan dengan signature yang sama dalam subclass, tetapi tidak mengesampingkan overriding didalamnya karena tidak ada runtime polymorphism. Karena hal tersebut, maka tidak bisa dilakukan overriding static method pada Java. Jika derived class dedifinisikan sebagai method static dengan signature sama sebagai method static dalam base class, maka method dalam derived class akan menyembunyikan method dalam base class.

Overriding static terjadi ketika sebuah metode statis dalam kelas induk di-overwrite oleh metode statis dengan nama yang sama dalam kelas turunannya. Namun, Java tidak memungkinkan overriding static. Meskipun metode statis dapat diwarisi oleh kelas turunan, namun tidak mungkin untuk memanggil metode statis dari kelas turunan menggunakan konsep overriding.

Contoh:

// Program Java memperlihatkan

// bahwa jika static method di

// redefinisi oleh derived

// class, maka itu bukanlah

// overriding.

 

/* Superclass */

class Base 

{

// Static method dalam base

// class akan tersembunyi

// dalam subclass.

public static void display() 

{System.out.println("Static "

+"atau class method dari"

+" Base");}

 

// Non static method akan

// overriding dalam derived

// class.

public void print() 

{System.out.println("Non-sta"

+"tic atau Instance method "

+"dari Base");}

}

 

/* Subclass */

class Derived extends Base 

{

// method ini menyembunyikan

// display() dalam base.

public static void display() 

{System.out.println("Static "

+"atau class method dari"

+" Derived");}

 

// method overriding print()

// dalam base.

public void print() 

{System.out.println("Non-sta"

+"tic atau Instance method "

+"dari Derived");}

}

 

/* Driver class */

public class Test 

{

 

public static void main(String args[ ]

{

Base obj1 = new Derived();

// Sesuai dengan aturan

// overriding maka akan

// dipanggil menuju class

// Derive static overriding

// method.

 

// Ketika static method tidak

// bisa overriding, maka akan

// memanggil base display().

obj1.display();

 

// Berikut cara kerja

// overriding dan derived

// print() ketika dipanggil.

obj1.print();}

 

}

Output:
Static atau class method dari Base
Non-static atau Instance method dari Derived

Beberapa Aturan Penting untuk Overriding dan Static Method pada Java:
  • Untuk class (atau static) method, method menurut tipe dari reperensi dipanggil, tidak menurut object-nya yang jadi referensi, artinya method yang akan dipanggil diputuskan pada saat waktu kompilasi program.
  • Untuk instance (atau non-staticmethod, method yang dipanggil menurut tipe dari object yang akan direferensikan, tetapi tidak untuk tipe dari referensi, dengan kata lain method yang akan dipanggil diputuskan saat runtime.
  • Instance method tidak bisa overriding pada sebuah static method, dan sebuah static method tidak bisa disembunyikan pada instance method. Contoh, berikut program memiliki dua compiler error.
  • Dalam subclass atau derived class, dapat dilakukan overloading method inheritance dari superclass. Method overload disembunyikan ataupun juga disebut overriding method superclassmethod tersebut merupakan method baru dan unik yang terdapat pada subclass.

Contoh:

// Program Java memperlihatkan

// bahwa jika static method

// diredefinisi oleh deriver

// class, maka itu bukan

// overriding tetapi hidding.

 

/* Superclass */

class Base 

{

// Method static dalam base

// class akan disembunyikan

// dalam subclass.

public static void display() 

{System.out.println("Stati"

+"c atau class method dari"

+" Base");}

 

// Non static method akan

// overriding dalam derived

// class.

public void print() 

{System.out.println("Non-sta"

+"tic atau Instance method"

+" dari Base");}

}

 

/* Subclass */

class Derived extends Base 

{

// Static dihilangkan pada

// bagian ini (karena

// kompilator error).

public void display() 

{System.out.println("Non-sta"

+"tic method dari Derived");}

 

// Static ditambahkan pada

// bagian ini (karena

// kompilator error).

public static void print() 

{System.out.println("Stati"

+"c method dari Derived");}

}


Kesimpulan:
  • Overloading static memungkinkan definisi berbagai versi dari metode dengan nama yang sama di dalam sebuah kelas, sementara overriding static tidak didukung dalam Java.
  • Overloading static berguna untuk mendefinisikan operasi yang sama dengan tipe data yang berbeda, sementara overriding static tidak berlaku dalam konteks pemrograman Java.
  • Dengan overloading static, pengembang dapat meningkatkan fleksibilitas dan keterbacaan kode, sementara overriding static tidak relevan dalam pemrograman Java.

Dengan pemahaman yang baik tentang overloading dan overriding static dalam Java, pengembang dapat menggunakan kedua konsep ini dengan bijaksana dalam pengembangan perangkat lunak Java. Meskipun overriding static tidak berlaku dalam Java, overloading static tetap menjadi teknik yang berguna untuk meningkatkan fleksibilitas dan keterbacaan kode.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Rafadila Putri Wardani, Rizaldi Yusuf Ridhallahi, Rosa Dyarma Syahda Firens, Safhira Kumala Dewi, dan Shinta Hidhayatuzzaroh Munawaroh.

5 komentar untuk "Overloading dan Overriding Static Java dan Fungsinya"

  1. Apa yang dimaksud dengan overloading dan overriding pada bahasa Java?

    BalasHapus
    Balasan
    1. Overloading terjadi ketika dua atau lebih method dalam satu class memiliki nama yang sama tetapi dengan parameter yang berbeda. Sedangkan overriding terjadi jika dua method memiliki nama dan parameter method yang sama, dimana salah satu method ada di class induk, dan method lainnya ada di class anak.

      Hapus
  2. Mungkinkah overloading dan overriding terjadi pada method yang sama pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Tidak mungkin overloading dan overriding terjadi dalam waktu yang bersamaan karena overloading menyiratkan parameter yang berbeda pada Java.

      Hapus
  3. Trima kasih, artikel penjelasan tentang overloading dan overriding yang sangat membantu.

    BalasHapus

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 -