Cara Membuat Program Overriding Java dan Fungsinya
![]() |
Ilustrasi Java Overriding |
class Derived
{
protected final void getDetails(){
System.out.println("Derived"
+" class");}
}
public class Test extends Derived
{
protected final void getDetails(){
System.out.println("Test"
+" class");}
public static void main(String[] args){
Derived obj = new Derived();
obj.getDetails();}
}
b) Test class
c) Runtime error
d) Compilation error
Jawabannya adalah d. Compilation error
Penjelasan: Method final dan static tidak bisa overriding.
class Derived
{
public void getDetails(String temp){
System.out.println("Derived"
+" class "
+temp);}
}
public class Test extends Derived
{
public int getDetails(String temp)
{System.out.println("Test"
+" class "
+temp);
return 0;}
public static void main(String[] args)
{Test obj = new Test();
obj.getDetails("MKN");}
}
b) Test class MKN
c) Compilation error
d) Runtime error
Jawabannya adalah c. Compilation error
Penjelasan: Method overriding harus memiliki signature yang sama, yang didalamnya termasuk daftar argumen dan tipe return.
class Derived
{
public void getDetails()
{System.out.println("Derived"
+" class");}
}
public class Test extends Derived
{
protected void getDetails()
{System.out.println("Test"
+" class");}
public static void main(String[] args){
Derived obj = new Test();
/* line xyz */
obj.getDetails();}
}
b) Compilation error pada line xyz
c) Derived class
d) Compilation error pada access modifier
Jawabannya adalah d. Compilation error pada access modifier
Penjelasan: Method overriding tidak bisa mengubah akses yang lebih ketat.
Contoh: Output overriding program 4.
import java.io.IOException;
class Derived
{
public void getDetails() throws IOException
/* line 23 */
{System.out.println("Derived"
+" class");}
}
public class Test extends Derived
{
public void getDetails() throws Exception
/* line 24 */
{System.out.println("Test"
+" class");}
public static void main(String[] args) throws IOException
/* line 25 */
{Derived obj = new Test();
obj.getDetails();}
}
b) Compilation error pada line 24
c) Compilation error pada line 25
d) Compilation error pada line 23, 24, dan 25
Jawabannya adalah b. Compilation error pada line 24
Penjelasan: Exception oleh overriding method seharusnya bukan exception yang baru atau lebih luas cakupannya. Pada contoh program sebelumnya exception adalah class yang lebih luas dari exception yang diperiksa IOexception, sehingga menghasilkan error compilation.
Contoh: Output overriding program 5.
class Derived
{
public void getDetails()
{System.out.printf("Derived"
+" class ");}
}
public class Test extends Derived
{
public void getDetails()
{System.out.printf("Test "
+"class ");
super.getDetails();}
public static void main(String[] args)
{Derived obj = new Test();
obj.getDetails();}
}
b) Derived class Test class
c) Compilation error
d) Runtime error
Jawabannya adalah a. Test class Derived class
Penjelasan: keyword super digunakan untuk memanggil method overriding dari child class secara eksplisit.
Mendeklarasikan method sub class yang sudah ada pada class induk dikenal sebagai method overriding. Overriding dilakukan agar class anak dapat memberikan suatu implementasi sendiri ke method yang sudah disediakan oleh class indukk.
BalasHapusDalam bahasa pemrograman berorientasi object apapun, overriding adalah fitur yang memungkinkan subclass atau class turunan untuk menyediakan implementasi spesifik dari method yang sudah disediakan oleh salah satu class super atau class induk. Method overriding merupakan salah satu cara bagi java untuk mencapai runtime polymorphism.
BalasHapusFungsi dari anotasi @overridie pada Java adalah memberi tahu kompilator bahwa elemen tersebut dimaksudkan untuk mengganti (override) elemen yang telah dideklarasikan dalam superclass.
BalasHapusApa yang terjadi dalam suatu method override pada bahasa pemrograman Java?
BalasHapusKemampuan subclass untuk menggati method memungkinkan class untuk mewarisi sifat dari superclass yang perilakukany cukup dengan dan kemudian mengubah perilaku tersebut sesuai dengan kebutuhan dari class tersebut. Method overriding memiliki nama, jumlah, dan tipe parameter yang sama, dan tipe kembalian sebagai method yang telah di-override.
Hapus