Artikel Terbaru

Cara Mudah Menggunakan Atribut OnDradEnd pada Elemen HTML

Atribut event ondragend merupakan salah satu atribut pada html yang akan bekerja ketika user telah selesai melakukan drag pada elemen html. Fitur drag and drop merupakan fitur yang umum pada html5. Setiap elemen pada html dapat dilakukan drag dengan menggunakan atribut draggable pada html5.

4 Aturan Penting Overloading dan Overriding method static pada Java

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.

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.

/* 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

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++.

/* 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.

// 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
  • satu, 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.
  • dua, 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.
  • tiga, 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.

// 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");}

}


  • empat, 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.

Komentar

  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

Posting Komentar

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Enkapsulasi pada Java

Perbedaan stdio.h dan stdlib.h pada Bahasa C

Perbedaan Antara int main() dan int main(void) pada Bahasa C

2 Jenis Utama Kegiatan Penelitian Berdasarkan Waktunya, Crosssectional Salah Satunya

Cara Tepat Penulisan void main dan main pada Bahasa C